2012-11-25 250 views
20

我有Maven項目,我想我的部署內部的Nexus倉庫的文物,其配置有我快照發佈在兩個不同的地方。所以我不能使用'distributionManagement',因爲這會硬編碼位置。所以我定義了幾個在我的settings.xml中說'releaseRepository'和'snapshotRepository',並且每個都有參數'release',對於發佈版本應該設置爲'true',對於快照應該設置爲'false'。Maven的部署:部署使用-DaltDeploymentRepository

我使用以下命令運行我的構建以釋放我的構件;

mvn clean deploy -DaltDeploymentRepository=releaseRspository::<DON'T KNOW WHAT GOES HERE SO LEFT IT EMPTY>::htp://abc.com/repositores/my-releases/ -Drelease=true 

現在,當我運行上面的命令失敗,因爲'佈局'值沒有提供,我得到異常和構建失敗。

我找不到任何有關'佈局'值的信息,我有大約10個項目,我想要彼此構建和釋放。

回答

26

altDeploymentRepository String - 指定的替代存儲庫,以該項目 工件應該被部署(高於<distributionManagement>指定其他)。 格式如下:id ::佈局::網址

source

所以,在你的情況:releaseRepository::default::http://your.repo.url(見here佈局)

+0

感謝......剛剛纔......我的體型有點遠了,但現在與「權限被拒絕」失敗。我有選項卡在相同的settings.xml中使用用戶名和密碼,但我不確定它是否在使用,我的意思是我無法看到我的個人資料和服務器定義之間的任何鏈接,我怎麼能鏈接它們,即我怎麼說maven使用服務器id = abc進行身份驗證,然後使用其配置上傳? – SJunejo

+0

這就是'id'代表'altDeploymentRepository'代表 – 2012-11-25 01:41:02

+0

id = PROFILE_NAME?是或應該在那裏使用服務器名稱? – SJunejo

0

「佈局」 是爲向後舊式交換機與Maven 1兼容,並且在這一點上是一個時代錯誤。如果您使用的是Maven 2或Maven 3(因爲我相信至少有99.99%的世界必須在這一點上),這確實是「默認」,如其他地方所述。通過說明答案是明確的「默認」,交換機的效用問題就被消除了;如果它總是「默認」,它仍然存在?

如果你實際上仍然在使用Maven 1,它應該是「遺留」的,但我希望沒有人。所有這些都在Maven規範中描述:

佈局 默認爲Maven2佈局或Maven1佈局的傳統。 Maven3也使用默認佈局。

https://maven.apache.org/plugins/maven-deploy-plugin/deploy-mojo.html