2013-07-31 29 views
0

我已经设置了2个免费样式作业,build-app和deploy-app。 build-app轮询scm并构建基于Maven的应用程序,并将该构件安装到Web服务器(内部存储库服务器)中,然后调用deploy-app。我想将pom文件的版本()传递给下游作业,以便它可以下载正确的工件并将其安装在机器上。我发现了一些答案,建议将版本字符串放在属性文件中并使用InjectEnv插件,但我更喜欢从POM本身读取它。有任何想法吗?Jenkins - 如何将值从pom.xml传递给下游作业(免费样式)

谢谢!

回答

1

在Maven内部构建时,您可以访问pom文件版本${program.version},并且可以使用它执行任何操作。

下游自由式作业也可以使用相同的pom运行Maven,但是不同的目标。如果你在过渡时注意不要改变它,版本应该是一样的。 (这暗示了一个应该始终遵循的过程。)

例如,Maven目标可以运行Groovy脚本或Ant脚本,该脚本会从repo中选取正确的文件并部署它。

+0

有没有一个内置的目标,只读pom文件?然后我可以使用Invoke Shell Script来控制工件。或者,如何添加下载工件的自定义目标? – Seffy

+0

下载/ deploy/copy/etc的步骤需要在Maven内部运行。您将希望选择一个适合您的生命周期阶段,并在'deploy'后发生。 –

相关问题