Так что эта проблема меня раздражает, и я решил задать вопрос, потому что ни один ответ не смог помочь, проблема происходит ОСОБЕННО для project.build.directory.
У меня есть конвейер Jenkins, и мне нужно построить эту строку для развертывания моего артефакта
@${project.build.directory}\${project.artifactId}_${project.version}.car
Я использую следующее, чтобы получить некоторую информацию от pom. xml
script {
pom = readMavenPom file: 'pom.xml'
deployVersion = pom.properties.'deploy.version'}
Так что оба
${deployVersion} and ${pom.version}
работает отлично, поэтому нет никаких причин для $ {pom.build.directory} не работать, но это не так. Тем не менее я решил обойти это и выставить это свойство через свойства pom, так как я знаю, что свойство работает внутри pom, поэтому я сделал это в моем pom
<properties>
<build.dir>${project.build.directory}</build.dir>
</properties>
И это тоже не работает, после назначения pom.properties.'build.dir для buildDir я получаю $ {project.build.directory} в виде литерала
@${buildDir}\${pom.artifactId}_${pom.version}.car
Я понятия не имею, почему это происходит или как это исправить. Любые идеи?
РЕДАКТИРОВАТЬ : В комментариях был дан ответ ниже, либо бегите с другим sla sh (\\
), либо используйте форварда sla * sh (не тестировал хотя этот)
Еще более странно, \ исчезает, и он не конвертирует pom.artifactId (который будет конвертироваться правильно, если я вызову его без каталога сборки)