我想用兩個不同的分類器部署兩個罐子工件,但由於兩者都提供了它們自己的版本pom.xml
,所以目前失敗。我該如何解決這個問題,以便兩個pom.xml
可以與他們的工件一起上傳?Maven從兩個單獨的pom.xml部署兩個不同分類器的罐子
示例 - 我有com.test.company.somelib-1.0.0-cmp1.jar
和com.test.company.somelib-1.0.0-cmp2.jar
,其中cmpX
是一個分類器。這兩個軟件包都包含(邏輯上)相同的代碼和類(具有相同的版本),但它們在預處理方式上略有不同。分類器註釋是由於我們需要維護的向後兼容性。
長話短說,第一件神器上傳正常,第二件失敗,Forbidden
,因爲我們的存儲庫不允許覆蓋工件(我想保留它)。
有一個稍微不同的管道可以創建兩個包,所以它們的構建很容易分開。我只想將它們部署爲兩個具有相同名稱和不同分類器的軟件包。
感謝您的幫助
編輯:有人建議使用Maven的配置文件。我可以看到他們會工作,但他們不會很理想。
考慮下圖中描述的設置 - 有一個CI服務器(TeamCity)。
- 有一個「啓動器」構建(來源)。這個版本檢出所有必需的源文件。
- 從這個初學者構建幾個其他版本被觸發(處理使用x.x.x/編譯)。其中的每一個構建都會調整一個template-pom.xml(填充特定的
classifier
和其他信息),然後構建它的工件並將其部署到我們的Artifactory。
隨着我要實現的,如果我決定要添加其他處理,建立的設置,所有我需要做的就是添加一個「分支」。如果我使用配置文件,我還需要將一個新配置文件添加到pom.xml文件中。
請糾正我,如果我錯了。配置文件似乎能夠實現目標,但不是理想的,至少在我的情況下。
難道我理解你的權利 - 你有兩個不同的POM文件,但它們具有相同的GroupId的artifactId版本和因此在部署第二個時會被禁止? – mediahype
是的,這是正確的。文件的名稱是不同的(分類器),但它們的pom.xml名稱是相同的 - 當pom.xml被上傳時,我得到了禁止。 –
歸結爲以下問題:編譯時需要* runtime * .jar文件嗎?因爲從名稱看,它看起來不像 – mediahype