Декларативный конвейер Jenkins добавляет / удаляет элементы POM. XML - PullRequest
0 голосов
/ 05 мая 2020

Я хотел бы создать декларативный конвейер, чтобы удалить все s под элементом и добавить разные s для ниже pom. xml file:

<modelVersion>4.0.0</modelVersion>

-<parent>
    <groupId>groupid</groupId>
    <artifactId>artifactid</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <relativePath>path/to/other/pom.xml</relativePath>
</parent>

<groupId>groupid</groupId>
<artifactId>artifactid</artifactId>
<packaging>pom</packaging>
<version>0.0.1-SNAPSHOT</version>
<description>my project</description>

-<modules>
    <module>one</module>
    <module>two</module>
    <module>three</module>
    <module>four</module>
    <module>five</module>
</modules>

Я написал ниже groovy script, который делает что я хочу, но я не могу запустить скрипт в декларативном конвейере Jenkins.

'' '

#!/usr/bin/env groovy

def xmlFile = new File('pom.xml') 
def pom = new XmlParser().parse(xmlFile)
def pomNodes = pom.children()
pomNodes.module.each{
    print it.text()
    it.parent().remove(it)
}
def newModule = new Node(pomNodes[7], 'module', 'severn')
new XmlNodePrinter(new PrintWriter(new FileWriter(xmlFile))).print(pom)

' ''

On https://www.jenkins.io/doc/pipeline/steps/pipeline-utility-steps/ сказал использовать нижеприведенные утилиты, но что мне следует использовать для манипуляций?

def pom = readMavenPom file: 'pom. xml'

// Сделайте некоторые манипуляции

написать модель MavenPom: пом

...