Я собрал общую библиотеку jenkins для использования при сборках.Я хотел бы использовать муравей, потому что он имеет много полезных методов для простого изменения файлов.Тем не менее, я не могу заставить его работать в моей среде Дженкинса.
У меня есть очень простой метод муравья в библиотеке:
@NonCPS
static void antReplace(String file, String token, String value){
def ant = new AntBuilder()
ant.replace(file: "${file}", token: "${token}", value: "${value}")
}
Это действительно странно.Я не получаю никаких ошибок, но файл остается нетронутым, когда я вызываю этот метод.
Есть ли какая-то особая конфигурация для использования муравья в Дженкинсе?Даже включить вывод ошибок?Мне просто нужно что-то отладить.Я действительно хотел бы использовать библиотеку в моей системе.
Ниже приведен скриншот конфигурации муравья в Jenkins.
Мне кажется, у меня есть очень простой пример использования для примера.Все параметры в порядке.По-настоящему огорчает то, что обратной связи для отладки нет.
Чтобы добавить некоторый контекст, я использую Jenkinsfile, работу по построению многоотраслевого конвейера с использованием декларативной конвейерной синхронизации.Глобальная функция var из библиотеки запускается из файла jenkinsfile, который вызывает этот метод из класса библиотеки src util.
Global Var:
import groovy.transform.Field
import org.utilities.Utils
@Field
Utils utils = new Utils()
def call() {
utils.antReplace("${env.WORKSPACE}\\myfile.sql", "xxxDBNAMExxx", "mydbname")
utils.antReplace("${env.WORKSPACE}\\myfile.sql", "xxxSCHEMAxxx", "myschemaname")
}
Jenkinsfile:
@Library('jenkins_lib')_
pipeline {
agent any
stages {
stage("test1"){
steps{
myGlobalVar()
}
}
}
}
Utils:
package org.utilities
@NonCPS
static void antReplace(String file, String token, String value){
def ant = new AntBuilder()
ant.replace(file: "${file}", token: "${token}", value: "${value}")
}
Одна вещь, которую яТакже можно проверить, что если я изменю параметр file
на ant.replace
function на filed
, я получу отличное исключение, заявив, что это не настоящий параметр в принципе.Так что он определенно вызывает муравей.
Другое дело, что если я изменил имя файла, у меня тоже возникнет проблема.Таким образом, это заставляет меня думать, что, возможно, это просто не найти мои токены для замены.Не уверен, как муравей работает здесь.Может быть, его кодировка файла?