从Jenkinsfile访问父POM属性

时间:2018-02-27 14:59:38

标签: maven jenkins jenkins-pipeline

我有一个使用Maven构建的Spring应用程序。 Jenkins声明管道正用于实现CI / CD。

我希望我的Jenkinsfile尽可能通用,利用POM及其父POM中已有的功能。我们使用自定义Super POM来集中元数据,例如我们的Artifactory存储库(distributionManagement />),SonarQube服务器和一些其他有价值的属性。

我已经使用readMavenPom().getParent().getGroupId()来获取我们公司的标准groupId,以及readMavenPom().getArtifactId()readMavenPom().getVersion()readMavenPom().getPackaging()

我想访问元数据,以便将其用于将二进制文件发布到Artifactory的管道步骤。

查看Parent class,我看不到distributionManagement标记的任何getter。我确实在ModelBase下看到了它。

如何从Jenkins文件中访问这些详细信息?

谢谢

1 个答案:

答案 0 :(得分:3)

关键是继承解决方案只在Maven本身完成,但在Jenkins中没有。 您可以尝试通过mvn -N help:effective-pom -Doutput=result.xml获取此信息,并为readMavenPom('result.xml')

提供参数