Использование библиотеки Ant в общей библиотеке Groovy для Jenkins - PullRequest
0 голосов
/ 16 июня 2019

Я собрал общую библиотеку jenkins для использования при сборках.Я хотел бы использовать муравей, потому что он имеет много полезных методов для простого изменения файлов.Тем не менее, я не могу заставить его работать в моей среде Дженкинса.

У меня есть очень простой метод муравья в библиотеке:

@NonCPS
static void antReplace(String file, String token, String value){
    def ant = new AntBuilder()

    ant.replace(file: "${file}", token: "${token}", value: "${value}")
}

Это действительно странно.Я не получаю никаких ошибок, но файл остается нетронутым, когда я вызываю этот метод.

Есть ли какая-то особая конфигурация для использования муравья в Дженкинсе?Даже включить вывод ошибок?Мне просто нужно что-то отладить.Я действительно хотел бы использовать библиотеку в моей системе.

Ниже приведен скриншот конфигурации муравья в Jenkins.

Jekins Ant configuraiton

Мне кажется, у меня есть очень простой пример использования для примера.Все параметры в порядке.По-настоящему огорчает то, что обратной связи для отладки нет.

Чтобы добавить некоторый контекст, я использую 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, я получу отличное исключение, заявив, что это не настоящий параметр в принципе.Так что он определенно вызывает муравей.

  • Другое дело, что если я изменил имя файла, у меня тоже возникнет проблема.Таким образом, это заставляет меня думать, что, возможно, это просто не найти мои токены для замены.Не уверен, как муравей работает здесь.Может быть, его кодировка файла?

...