Maven私服使用經驗總結


我是使用nexus2.11.2在centos6.5上搭建的私服,以下是總結我這幾天的經驗。

 

1.當你修改pom.xml的時候,eclipse檢查的是你本地倉庫里的jar包,如果有了,pom.xml文件就不報錯,否則報錯。

 

2.使用私服比較方便的幾個好處是,不用所有人都從網上下一大堆東西,而且有了私服,其他人都不需要上網,只要私服那台服務器可以上網就行了。

因此,你要首先保證你的私服是可以上網的。如果公司需要代理,那么在nexus管理頁里,把代理設置了,具體的位置是

Administration里點server然后再里邊我是如下設置的,填寫自己的代理服務器IP端口跟賬號密碼

 

 

3.創建一個Repository group,這個是一個倉庫組,可以在他的configuration里選擇添加那些具體的倉庫。

這里最需要的一個肯定是Central,他的鏡像地址是http://repo1.maven.org/maven2/也就是maven2的主地址。

所有倉庫的Download Remote Indexes,我都設置成true了。

4.自己創建一個proxy Repository,創建這個的目的是,比如我的group里只添加了一個Central,但是發現不夠,我還需要其他的包

比如我這個項目里用到了CDH,但是Central這個maven倉庫里沒有,所以我需要建一個cdh里倉庫,通過CDH的maven pom.xml文件可以知道,他的倉庫地址是

https://repository.cloudera.com/artifactory/cloudera-repos/

所以我添加如下的配置

 

5.我添加完4里邊的proxy,在將它放進3里的group里,這樣3里就也有這個目錄了,大家統一用3里創建的group這個倉庫。

6.怎么讓其他人不上網,而是從私服倉庫里下載呢

1)配置自己的pom.xml添加如下配置

<!-- 設定主倉庫,按設定順序進行查找。 -->
    <repositories>
         <repository>  
            <id>kora</id>  <!--這個ID需要與你新建的組group ID一致--> 
            <name>Kora Repository</name>   
            <url>http://10.10.92.244:8081/nexus/content/groups/kora/</url>   
        </repository>  
    </repositories>

2)在maven客戶端的settings.xml里添加如下配置,放在mirrors標簽下邊

 <mirror>   
      <id>kora</id>   
      <mirrorOf>*</mirrorOf>   
      <url>http://10.10.92.244:8081/nexus/content/groups/kora/</url>   
    </mirror>

 

7.一些私有的jar包,在maven倉庫里找不到怎么辦?使用3rd party這個,第3方的jar包,他是一個hosted Repository

在這里點Artifact Upload,可以上傳第3方jar包,每次我都是選擇的GAV Parameters,上傳后,把3rd這個也加入到第3步建立的group里,這樣第3個就也有了。

 

8.建立的proxy沒有下載對應的jar包,這個時候,你選擇group,group里也不會有,但是你訪問的時候,有的時候,它不會自動下載。

我的做法是,把pom.xml跟settings.xml里的倉庫地址,都換成proxy的,然后加一個你想下載的jar的dependency標簽,然后,讓proxy下載。這樣你的group里也就有了,之后再換回group.

 

9.我發現我的服務器上有jar包,但是maven install的時候還是提示

[ERROR] Failed to execute goal on project kora-monitor: Could not resolve dependencies for project com.kora:kora-monitor:war:1.2.6: Failure to find bitwalker:UserAgentUtils:jar:1.13 in http://10.10.92.244:8081/nexus/content/groups/kora/ was cached in the local repository, resolution will not be reattempted until the update interval of kora has elapsed or updates are forced -> [Help 1]

這是因為,我本地已經有bitwalker這個目錄了,但是里邊沒東西,但是因為有目錄,又不會從私服上下了,所以這個只要你刪除本地路徑,再install就可以了。

 

10.跟9的問題差不多,提示在服務器上找不到jar,比如oracle驅動,但是我發現,我已經上傳到3rd上了,3rd下是有這個jar的,而且group里也有

但是死活就是找不到,於是我把3rd的com.oracle這個包給刪了,然后打開group里居然還有com.oracle這個目錄,而且里邊沒有jar包這就很奇怪了,

因為我是把3rd里的com.oracle目錄徹底刪掉的。為什么group里還有,最后我在group集合里的每個倉庫里挨個查找,終於在Central里發現了com.oracle這個目錄

跟group里的目錄一樣,光有目錄沒有jar包,后來我刪除了這個目錄,又從新在3rd里上傳了帶jar包的目錄,問題解決了。

 

11.如果目錄結構特別多,不想一個一個上傳,可以直接把目錄上傳到服務器上,我的3rd目錄是/usr/local/sonatype-work/nexus/storage/thirdparty

我就把我倉庫里的私有jar包直接放進去,就好使了。3rd跟group里就都能看見了

12.Maven編譯提示GBK亂碼,而你的類是UTF-8的,那么你需要在你工程的pom.xml里添加編碼格式,如下:

 <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM