2012-08-29 33 views
3

我想我已經運行了一個maven deploy插件的bug,但我想確認我沒有做錯,然後我打開一個bug報告並開始通過源代碼進行grepping。如何用maven部署一個任意的二進制到Nexus

我想部署一個任意的二進制文件(tar.gz,jar,box等)到一個maven倉庫。 我正在使用的用戶位於帶純文本密碼的settings.xml文件中。 用戶位於使用角色連接到連接的LDAP組中。

該角色有3個與其相關的權限。更新,創建,讀取,這些又與存儲庫目標相關聯。

現在使用wget用戶可以從回購中提取數據,並使用該curl命令,我可以部署到回購:

curl --request PUT --user USERNAME:PASSWORD https://NEXUS_URL/nexus/content/repositories/REPO_NAME/path/to/file/with/groupid/version/iamafile.jar \ 
--data @./iamafile.jar -H Content-Type:application/java-archive --verbose 

這工作得很好,HTTP 201和文件被添加。當我使用類似的mvn deploy命令時:

mvn deploy:deploy-file --settings /path/to/settings.xml \ 
-Durl=https://NEXUS_URL/nexus/content/repositories/REPOSITORYID -Dfile=iamafile.jar \ 
-DrepositoryId=REPOSITORYID -DartifactId=ARTIFACTID -DgroupId=GROUPID \ 
-Dversion=VERSION 

我得到一個http 401未經授權的錯誤。

已經有multiplebug有關這方面的報道,但他們應該已被修復。 對於版本,artifcatId等具有相同值的pom文件,mvn deploy正常工作。

我發現了一個錯誤,或者我使用不當嗎?

編輯:

我打開了this關於這個問題的錯誤。 如果開發者最終說這不是一個bug,我會補充說,如果有人沒有打敗我。

+0

很奇怪的一個部署POM工程......我花了很多時間排除故障的Nexus的401錯誤,它們幾乎都是由不設置拿起憑證所致文件(不匹配的存儲庫ID)或不正確的用戶名/密碼。 –

+0

我能夠通過Wireshark運行它,並且沒有驗證標頭。 – Chris

+0

恕我直言,這應該工作。我會嘗試不使用--settings,只使用默認的settings.xml,然後將憑據放在那裏.. –

回答

1

你需要另外指定-DrepositoryId

相關問題