在命令行上转义 Maven 属性

Escape Maven properties on the command line

我正在尝试调用 versions:set -DnewVersion=${revision},但 没有 ${revision} 被替换。

我试图将 $ 转义为 $$$,但这没有用。

知道如何实现吗?

有一个技巧可以让 Maven 将以 $ 开头的属性视为字符串而不是尝试替换它们:

./mvnw versions:set -Ddollar='$' -DnewVersion='${dollar}{revision}'

pom.xml 包含所需的结果:

<version>${revision}</version>

一个更简单但不太优雅的想法是使用 sed:

./mvnw versions:set -DnewVersion='@revision@'
sed -i '' 's|@revision@|${revision}|' pom.xml