我有一個項目,我試圖用maven安裝。該pom.xml
中有幾個屬性時,Maven的安裝命令取決於我們正在試圖建立一個圖書館的任何版本上運行被修改:Maven安裝不尊重命令行參數
<properties>
<some-version>0</some-version>
</properties>
這裏的零是一個佔位符,我們將在在構建過程中始終指定合法版本。該版本是後來在pom.xml
參考指定幾個依賴關係:
<dependencies>
<dependency>
<groupId>com.mycompany.myproduct</groupId>
<artifactId>someOtherProject</artifactId>
<version>${some-version}</version>
</dependency>
</dependencies
大廈通過化妝完成與以下命令行:
mvn -Dsome-version=1.6.2
Maven是能夠正確地解析版本和構建爲預期。但是,安裝在我的本地maven倉庫(/home/user/.m2)中的版本沒有正確的版本。所安裝的pom.xml
沒有更新的版本我在命令行設置:
[email protected]:~/$ cat /home/user/.m2/repository/com/mycompany/myproduct/myproject/1.0.0/myproject-1.0.0.pom | grep some-version -C 1
<properties>
<some-version>0</some-version>
</properties>
--
<artifactId>someOtherProject</artifactId>
<version>${some-version}</version>
</dependency>
[email protected]:~/$
這是防止它依賴於從MyProject的能夠建立任何其他項目,如行家會抱怨它不能找到某個其他項目的版本0:
[ERROR] Failed to execute goal on project myproject:
Could not resolve dependencies for project mycompany.myproduct:myproject:jar:1.0.0:
The following artifacts could not be resolved: com.mycompany.myproduct:someOtherProject:jar:0,
Could not find artifact com.mycompany.myproduct:someOtherProject:jar:0 in central (https://mycompany.com/artifactory/repo/) -> [Help 1]
我需要做什麼來爲maven安裝更新版本的pom?顯然,一個可怕的駭客解決方案是使用sed並直接修改pom文件,但似乎Maven應該能夠在安裝pom時真正利用命令行設置。否則,在命令行上設置參數的能力在效率上似乎受到顯着限制。
更好地使用[versions](http://mojo.codehaus.org/versions-maven-plugin/)插件及其命令。 –
我們已經使用版本插件,但據我所知,只有設置的項目本身的版本。它不能解決設置屬性的問題。 – user2093082
是的,它反過來工作。我假設你有一個具有父級層次結構的多模塊項目。對不起,如果頁面上的例子沒有提供解決方案。還有中央** <依賴管理> **。 –