我想我已經運行了一個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,我會補充說,如果有人沒有打敗我。
很奇怪的一個部署POM工程......我花了很多時間排除故障的Nexus的401錯誤,它們幾乎都是由不設置拿起憑證所致文件(不匹配的存儲庫ID)或不正確的用戶名/密碼。 –
我能夠通過Wireshark運行它,並且沒有驗證標頭。 – Chris
恕我直言,這應該工作。我會嘗試不使用--settings,只使用默認的settings.xml,然後將憑據放在那裏.. –