Я получаю неверную ошибку замещения при запуске этой команды в моем конвейере jenkins
sh 'mvn build-helper:parse-version versions:set \
-DnewVersion=${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.nextIncrementalVersion}-SNAPSHOT \
-DgenerateBackupPoms=false \
-DprocessAllModules \
-DgenerateBackupPoms=false'
В данном случае это сообщение об ошибке -
[code] Запуск оболочкиподлинник.minorVersion}. $ {parsedVersion.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 при запуске вышеуказанной команды
[code] Запуск сценария оболочки
mvn build-helper: версии parse-версии: set '-DnewVersion = $ {parsedVersion.majorVersion}. $ {parsedVersion.minorVersion}. $ {parsedVersion.nextIncrementalVersion} -SNAPSHOT' -DgenerateBackupPoms = false -DprocessAllModules -Deneg1024 *
Здесь также работают двойные кавычки -
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"
Я удалил \ перед закрытием 'в конце.Это тоже сработало.