我想將我的Java項目構建成兩個不同的版本,每個版本都基於相同依賴項上的不同版本。具體來說,我的項目A需要依賴項B,它有兩個不同的版本(例如v1和v2)。我打算用B的每個依賴版本構建項目A,並獲取兩個不同的jar文件:A-v1.jar和A-v2.jar。源代碼是相同的,所以我不想將它複製到兩個不同的Maven項目中,因爲我期望在B版的新版本發佈時進行擴展。從同一個源代碼分支構建不同的項目版本
我到目前爲止的嘗試:我定義了兩個構建配置文件v1和v2,其中我已經指定了依賴項B的版本。這可以正常工作,因爲我可以構建兩個配置文件,但問題是我不知道如何告訴Maven向構建工件添加版本號。它始終將項目A構建到A-1.0.jar中,其中1.0是pom中的項目A版本。
我調查的一個更新:我在父pom的構建部分中添加了一個finalName元素來覆蓋默認工件命名。現在命名將如$ {artifactId} - $ {project.version.mycustomver},其中project.version.mycustomver屬性在每個構建配置文件中定義。這似乎會生成jar的正確命名,但是maven-install-plugin正在將工件名稱更改回$ {artifactId} - $ {version}。不知道爲什麼以及如何避免它。
我欣賞任何建議。謝謝, DanP
您可以簡單地將依賴關係定義爲'提供的 ',您將只創建一個工件。你的lib的用戶可以簡單地通過添加適當的依賴版本來決定。不需要有你自己的神器的不同版本等。 –
khmarbaise