Im面臨以下問題:我想將mercurial hash集成到我的java項目中。我想將它集成到生成文件(一個debian包)的名稱中,我也希望有一個像version.properties這樣的文件,可以訪問mercurial hash。Java:Maven:獲取屬性文件中的pom.xml信息(mercurial hash作爲版本)
我知道有很多類似的問題,但我讀了他們,不知何故我無法解決我的問題。
我使用buildnumber-maven-plugin來檢索mercurial hash。然後我將它整合到版本中。然後,當我運行mvn clean install
這個工作到目前爲止,debian軟件包是用這個散列生成的。
<version>project-${buildNumber}</version>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>buildnumber-maven-plugin</artifactId>
<version>1.0</version>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>create</goal>
</goals>
</execution>
</executions>
</plugin>
我缺少的是什麼buildNumber.properties
文件,它會自動由插件生成。我無法在任何地方找到它。所以我決定寫我自己的屬性文件。我在src/main/resources
中創建了一個,並將一個屬性添加到我的pom.xml中。下面是摘錄:
的pom.xml
<properties>
<merc.version>${buildNumber}</merc.version>
</properties>
version.properties
version=${buildNumber}
version2=${merc.version}
然後我mvn clean install
從CMDL運行。但是當我從命令行打開我的version.properties文件並使用less
時,我發現內容像上面寫的那樣是明文。這些屬性不會被真實內容所取代。我只看到version=${buildNumber}
,依此類推。
此外,應該由maven生成的文件「pom.properties」包含一個月前的一個非常舊的版本。我不明白該怎麼做來更新它。
請,如果有人能幫助我,那將是偉大的:-)謝謝!
太棒了!謝謝!我已經添加了filtering = true,但我總是看着錯誤的文件,而不是目標/類中的文件。愚蠢的我!謝謝!! :-) – nano7 2012-03-15 09:28:07