2016-07-22 159 views
5

我想解析jenkins管道插件中的我的pom.xml文件。我打算修改它并保存回去。解析Jenkins管道内的pom.xml文件

我的问题是,它给了我 “未分类领域java.lang.String中版”

我的代码如下:

@NonCPS 
groovy.util.Node getPom(path) { 
    new XmlParser().parseText(readFile(path)).version 
} 
node { 
    groovy.util.Node pomNode = getPom("pom.xml") 
    println pomNode 
} 

类似的问题已经在这里讨论:Parsing an XML file within a Jenkins pipeline

回答

7

为什么不使用(你需要管道实用步骤插件):

pom = readMavenPom file: 'pom.xml' 

现在您可以访问pom中的所有数据(作为Model)。

+0

一个完美的答案。正确和非常快。 只是一个简单的问题,如何在修改后保存pom文件(我使用setVersion()来设置pom的版本)? –

+0

您可以使用'writeMavenPom'(请参阅https://jenkins.io/doc/pipeline/steps/pipeline-utility-steps/以供参考) –

+0

另一个非常快速的,我试图保存,它确实保存文件,但在父目录中。然后我研究了一下,发现有一个可选参数“file”,可以给出文件的所需路径。但我已经提出了如何将该文件参数提供给我的writeMavenPom。无法在任何地方找到任何示例命令。 再次感谢! –