我正在爲一些相互依賴的項目構建部署管道。每個版本都會生成一個具有唯一版本號的新版本版本,該版本號將部署到Maven存儲庫中。然後,管道中的下游項目將以該新版本作爲依賴項被觸發,並以類似的方式構建。更改Maven pom.xml <properties>物理上的值
我需要的是在構建項目之前更改pom.xml中的屬性值(或多模塊項目中的所有poms)。例如,在下面的代碼中,「0.1.200」將被更改爲「0.1.345」(或任何最新的內部版本號)。使用系統屬性不是一種選擇,因爲更新的pom將部署在Maven存儲庫中,所以更改必須持久。
<properties>
<foo.version>0.1.200</foo.version>
</properties>
<dependencies>
<dependency>
<groupId>com.example</groupId>
<artifactId>foo</artifactId>
<version>${foo.version}</version>
</dependency>
</dependencies>
有一些Maven插件與一個命令行指令,這樣做呢?否則我需要編寫一個簡短的腳本(例如在Ruby中)來解析和更改項目中的所有pom.xml文件。
這插件具有自動更新依賴於他們的最新版本的操作,但我沒有發現有更新單個屬性爲特定值的方式。 – 2013-03-02 16:46:02
[versions-maven-plugin](http://mojo.codehaus.org/versions-maven-plugin/examples/update-properties.html)能夠處理這些屬性。看看文檔。 – khmarbaise 2013-03-02 17:29:30
版本問題:更新屬性是它會自動嘗試檢測最新版本。在一個不好的部署管道中,因爲它可能會意外地導致Maven找到過時或新版本。爲了避免不可重複的構建,我需要明確使用哪個版本。 – 2013-03-02 18:32:34