最近在公司新開發(fā)了一個公用模塊,然后需要上傳到公司自己的maven私服nexus上缸濒,中途遇到蠻多的困難的妇拯。所以想在這里總結(jié)一下自己的錯誤,以防以后再犯露泊。
上傳至私服的準(zhǔn)備工作--配置
1.模塊pom文件的配置
<build>
<plugins>
<!-- 要將源碼放上去喉镰,需要加入這個插件 -->
<plugin>
<artifactId>maven-source-plugin</artifactId>
<version>2.1.2</version>
<configuration>
<attach>true</attach>
</configuration>
<executions>
<execution>
<phase>compile</phase>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<distributionManagement>
<repository>
<id>releases</id>
<name>releases</name>
<url>maven私服releases的url</url>
</repository>
<snapshotRepository>
<id>snapshots</id>
<name>snapshots</name>
<url>maven私服snapshots快照的url</url>
</snapshotRepository>
</distributionManagement>
2.settings.xml的配置
需要在<servers></servers>這個區(qū)域內(nèi)加入配置,這個username和password分別是對應(yīng)releases和snapshots的用戶名和密碼
<server>
<id>releases</id>
<username>username</username>
<password>password</password>
</server>
<server>
<id>snapshots</id>
<username>username</username>
<password>password</password>
</server>
3.部署到maven私服
完成上述兩步那么準(zhǔn)備工作就完成了旅择,之后就可以進行上傳部署操作了惭笑。這里有兩種方式來進行部署。
(1)maven命令行部署
mvn deploy -X
(2)eclipse下的部署方式
部署如下圖:
問題總結(jié)
一般執(zhí)行deploy -X會打印出出錯信息至控制臺,報錯一般都會返回Return Code,【400沉噩、401捺宗、402、403川蒙、404蚜厉、405、500畜眨、502昼牛、503】
1. 405錯誤
問題分析:
405錯誤的含義是“用來訪問本頁面的HTTP方法不被允許”,所以這個問題一般是配置上的repository的地址寫錯了康聂,或者是端口寫錯了贰健。
解決方案:
檢查repository的地址是否寫錯并改正
2. 401或403錯誤
問題分析:
403錯誤的含義是“禁止訪問”,那么當(dāng)然是在maven私服上設(shè)置了不讓該用戶訪問恬汁。
解決方案:
將Releases倉庫默認(rèn)的Deployment Policy修改為“Allow Redeploy”
如果是使用deployment賬號登錄的朋友請參考
《maven報錯:mvn deploy )》
3. 400錯誤
問題分析:
400錯誤的含義是“錯誤的請求”伶椿,在這里的原因是往往是沒有部署到nexus的倉庫中。nexus的repository分三種類型:Hosted氓侧、 Proxy和Virtual脊另,另外還有一個repository group(倉庫組)用于對多個倉庫進行組合。部署的時候只能部署到Hosted類型的倉庫中约巷,如果是其他類型就會出現(xiàn)這個400錯誤偎痛。
maven的部署是有針對性的,假設(shè)只是配置了releases庫独郎,但是模塊的artifactId中存在SNAPSHOT字樣也會報400錯誤看彼,同理相反也是這種情況。
解決方案:
將releases庫和snapshots庫兩個配置都配置上囚聚,或者一一對應(yīng)的配置靖榕。
4. 500錯誤
錯誤原因:服務(wù)器滿了
5. 402錯誤
錯誤原因:你使用的是nexus的Professional版本,但是你的license已經(jīng)過期了顽铸,需要重新注冊茁计。
這里只列舉出這幾種錯誤,至于其他的錯誤請參考
《Maven deploy部署失敗原因及解決)》