maven+nexus

1.1

 

安裝 nexus

1 )下載 http://nexus.sonatype.org/downloads/   nexus-2.2-01-bundle.zip

2) 執行nexus-2.1.2\bin\jsw\windows-x86-32中的install-nexus.bat安裝服務

3)執行start-nexus.bat啓動服務

4)打開瀏覽器,輸入 http://localhost:8081/nexus ,看到成功界面

 

 

1.2 

nexus  端口配置在nexus/conf/nexus.properties 文件中

 

1.3

nexus 中庫的類型:

hosted宿主倉庫:本地倉庫,創建hosted宿主倉庫,只填 id和name就可以,Storage Location不要填,默認會是在work目錄下;

proxy代理倉庫,代理遠程;創建proxy庫,只填 id和name和遠程庫的url即可;

group,倉庫組 可以代替所有已經選進去的庫,Available Repositories 可用的庫;

 

2.搭建Maven的Nexus私服,方解決開發團隊無法上網的情況,當然就是都能上網,私服也能減少上網浪費的時間,減少中央庫的壓力:

 

如果你已經安裝了nexus,可以在maven的settings.xml配置鏡像,這樣所有jar的下載機依賴分析都經過你的nexus

,nexus會緩存這些數據,以後其他人在獲取不用再重新衝互聯網下載了,也能解決其他人不能連入互聯網的問題

 

<mirror> 
        <id>nexus</id> 
        <mirrorOf>*</mirrorOf> 
        <name>Nexus Mirror</name> 
        <url>http://192.168.1.5:81/nexus/content/groups/public/</url> 
</mirror>

 

3.重點:把本地下載的repository整個發佈到nexus

用了私服後,

有事後出現有些jar依賴,無法用上面說的鏡像的形式下載下來,

甚至配置了存在這些jar的 maven庫的nexus 代理庫,也取不到,

也有無法代理第三方的maven庫的情況,原因未知:第三方庫新版本的jar總是無法索引的我自己的nexus中

這種情況,我的處理辦法是:

1)先去掉上面的鏡像,用可以連入互聯網的計算機,下載所有依賴,這樣這些依賴就存到你的  本機 的maven緩存中了(一般是在C:\Documents and Settings\登錄名\.m2\repository 下面)

 

2)然後在nexus  中創建 一個新的 Hosted Repository類型的庫,或者乾脆使用 nexus 帶的thirdparty庫,將呢 maven緩存全部copy到 nexus212\sonatype-work\nexus\storage\thirdparty中

 

3)這樣就可以了,萬一,如果這樣還找不到,我碰上過一次原因是:

因爲以前用鏡像的形式,導致activiti-engine-5.10.jar找不到,結果maven在我的緩存中創建了一個activiti-engine-5.10.jar.lastUpdated文件和後來下載成功的activiti-engine-5.10.jar並存在同一個文件夾中

我將它們複製到nexus 帶的thirdparty庫中後,搜索到的 activiti-engine 結果找的的是 activiti-engine-5.10.jar.lastUpdated而不是 activiti-engine-5.10.jar 所有還是提示找不到

如果是這種情況,刪除activiti-engine-5.10.jar.lastUpdated就行了,甚至刪除maven緩存中所有 *.lastUpdated 。

 

 

4.

對於類型爲release的proxy代理資源,資源中版本爲snapshot的jar包將被阻塞掉,客戶端無法獲取,如果獲取需要新建一個類型爲snapshot的proxy代理,指向與前者相同的遠程倉庫地址

 

5.

validate: 驗證項目是否正確以及相關信息是否可用
compile: 編譯
test: 通過junit進行單元測試
package: 根據事先指定的格式(比如jar),進行打包
integration-test: 部署到運行環境中,準備進行集成測試
verify: 對包進行有效性性和質量檢查
install: 安裝到本地代碼庫
deploy: 在集成或發佈環境,將包發佈到遠程代碼庫

 

1、archetype( 內建插件,他的create任務將建立項目骨架 ): archetype:create

2、groupId 項目的java包結構:com.aboy

3、artifactId 項目的名稱:webmap

mvn clean  清理(刪除target目錄下編譯內容)
mvn war:exploded  僅打包Web頁面文件
    mvn eclipse:eclipse 
    mvn eclipse:clean 
生成清除Eclipse項目結構:

mvn help:effective-pom   顯示Maven默認設置

 

 

6.pom文件 ,我原來的計算機上不出錯,在一個新的機器上 遇到了一個 這樣的異常
Multiple annotations found at this line:
    - Plugin execution not covered by lifecycle configuration: org.apache.maven.plugins:maven-resources-plugin:2.4.3:resources
     (execution: default-resources, phase: process-resources)
    - Plugin execution not covered by lifecycle configuration: org.apache.maven.plugins:maven-resources-plugin:2.4.3:testResources
     (execution: default-testResources, phase: process-test-resources)
    - Plugin execution not covered by lifecycle configuration: org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile
     (execution: default-compile, phase: compile)
    - Plugin execution not covered by lifecycle configuration: org.apache.maven.plugins:maven-compiler-plugin:2.3.2:testCompile
     (execution: default-testCompile, phase: test-compile)

後來發現 這個異常是 eclipse 的自帶 maven的異常。eclipse 默認 3.6 和 3.7 已經添加 maven的 插件了 ,但有問題

使用 m2eclispe 替換 eclpse的maven。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章