Escape Maven свойства в командной строке - PullRequest
2 голосов
/ 08 января 2020

Я пытаюсь позвонить versions:set -DnewVersion=${revision}, но без замены ${revision}.

Я пытался избежать $ как \$ или $$, но это не сработало.

Есть идеи, как этого добиться?

1 Ответ

6 голосов
/ 11 января 2020

Есть способ заставить 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
...