Я получаю ошибку неправильной замены, когда запускаю эту команду в своем конвейере jenkins
sh 'mvn build-helper:parse-version versions:set \
-DnewVersion=${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.nextIncrementalVersion}-SNAPSHOT \
-DgenerateBackupPoms=false \
-DprocessAllModules \
-DgenerateBackupPoms=false'
Это сообщение об ошибке в этом случае -
[код] Запуск сценария оболочки
/apps/jenkins/latest/workspace/ess-holani_master-3YNVBB6LFQA3QFK5NHYV57DW5HGSNALVGFJTJ4D6T72QVPJG4CDA/code@tmp/durable-374bc417/script.sh: строка 2: -DnewVersion=${parsedVersion.majorVersion}.${parsedVersion.minoredVersion. .nextIncrementalVersion}-SNAPSHOT: неправильная замена
скрипт вернул код выхода 1
Но это работает ->
sh 'mvn build-helper:parse-version versions:set \
-DnewVersion=\\\${parsedVersion.majorVersion}.\\\${parsedVersion.minorVersion}.\\\${parsedVersion.nextIncrementalVersion}-SNAPSHOT \
-DgenerateBackupPoms=false \
-DprocessAllModules \
-DgenerateBackupPoms=false'
Эта команда увеличивает мою версию pom, как и ожидалось.
Журналы в оболочке jenkins, когда я запускаю указанную выше команду
[код] Запуск сценария оболочки
mvn build-helper:parse-version версии:set '-DnewVersion=${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.nextIncrementalVersion}-SNAPSHOT' -DgenerateBackupPoms=false -DprocessAllModules -DgenerateBackupPoms=false
Здесь также работают двойные кавычки -
sh "mvn build-helper:parse-version versions:set \
-DnewVersion=\\\${parsedVersion.majorVersion}.\\\${parsedVersion.minorVersion}.\\\${parsedVersion.nextIncrementalVersion}-SNAPSHOT \
-DgenerateBackupPoms=false \
-DprocessAllModules \
-DgenerateBackupPoms=false"
Я хочу понять, зачем нам нужно добавлять лишний '\\\' в этот скрипт?
Ответ, предложенный Майклом работает.
Я также пробовал это
sh "mvn build-helper:parse-version versions:set \
-DnewVersion='\${parsedVersion.majorVersion}.\${parsedVersion.minorVersion}.\${parsedVersion.nextIncrementalVersion}-SNAPSHOT' \
-DgenerateBackupPoms=false \
-DprocessAllModules \
-DgenerateBackupPoms=false"
Я удалил \ перед закрытием ' в конце . Это тоже сработало.
'
s с\\\$
) действительно работал? Я предполагаю, что в этом случае Maven установил версию\${parsedVersion.majorVersion}.\${parsedVersion.minorVersion}.\${parsedVersion.nextIncrementalVersion}-SNAPSHOT
(без замен). - person Michael   schedule 19.09.2018