maven:從命令行(commandline)讀取取pom.xml中的屬性(property)
- 2019 年 12 月 2 日
- 筆記
版權聲明:本文為部落客原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
本文鏈接:https://blog.csdn.net/10km/article/details/103333098
如何在命令行(shell)讀取pom.xml中的屬性呢? 我在網上找到如下回答: https://stackoverflow.com/questions/23802951/get-pom-xml-property-from-commandline
就是用maven的內置插件 maven-help-plugin 來實現,在windows 命令行下如下實現:
mvn help:evaluate -Dexpression=[property-name] | findstr /R ^^[^^[INFO]]
這其中用到了findstr命令(在linux下要用grep或sed來代替)過濾mvn輸出的內容進行得到需要的值,以${project.version}
為例
mvn help:evaluate -Dexpression=project.version | findstr /R ^^[^^[INFO]]
不依賴findstr過濾更簡單通用的方式如下:
mvn help:evaluate -Dexpression=project.version -q -DforceStdout
但是我用的MAVEN 3.5.0下執行並不成功,什麼也沒有輸出,百思不得其解
後來找到下面的文章,就明白了:forceStdout
這個選項是在maven-help-plugin 3.2.0以上版本才有效的(我在maven 3.5.0下執行時,maven-help-plugin默認使用的版本是2.2)。

所以如下指定help插件的版本就可以正常輸出了:
mvn org.apache.maven.plugins:maven-help-plugin:3.2.0:evaluate -Dexpression=project.version -q -DforceStdout
參考資料 help:evaluate的官方文檔: http://maven.apache.org/plugins/maven-help-plugin/evaluate-mojo.html NOTE:根據這個文檔,forceStdout
這個選項從maven-help-plugin 3.1.0就有了,但3.1.0版本下實測也是無效的