Как использовать версию pom в командной оболочке в jenkinsfile? - PullRequest
1 голос
/ 01 апреля 2020

Я пытаюсь получить версию pom. xml в Jenkinsfile, а затем использовать эту версию в сценарии оболочки. Это дает исключение bad substitution при попытке использовать pom.version. Какой правильный синтаксис для передачи версии pom?

script {
    def pom = readMavenPom file: 'pom.xml'

    withCredentials(...) {

        sh '''#!/bin/bash                                        
              cp "${WORKSPACE}/target/stats-${pom.version}-shaded.jar" /xyz
        '''
    }                   
}

Я установил плагин Pipeline Utility Steps для readMavenPom cmd, но не перезапустил Jenkins. Нужно ли перезапускать Jenkins?

1 Ответ

1 голос
/ 01 апреля 2020

Если вы хотите заменить ${pom.version}, вам нужно использовать GString. Используемая вами тройная кавычка определяет многострочную строку Java, которая не поддерживает подстановку переменных. Вам нужно заменить ''' на """, чтобы определить многострочную строку GString, которая может заменить обе переменные, ${WORKSPACE} и ${pom.version}.

...