如何配置Jenkins以使用ant和custom args构建项目

时间:2012-08-16 10:35:45

标签: ant jenkins

使用ant构建下一个项目版本的例程太多了。例程在几个属性文件中,必须在运行ant任务之前进行编辑。我把Jenkins看作是一个制作系统的系统(包括夜间系统),但是我对改变属性有疑问。

是否有可能(如果是,我该怎么办)在构建之前在Jenkins配置中键入参数,以便将它们传递给ant?

我的意思是以下架构(我在手动构建中使用):

  • 有2个属性文件包含有关构建版本,src目标,用于通知新构建的电子邮件等的数据。

  • 在Ant任务中使用相应的属性'键,并在构建之前手动更改这些属性。

  • Java util读取了一些属性,并在构建期间用于它们自己的部分。

  • 还有3或4个ant XML在build.xml中导入,这些xmls还从所提到的文件中读取属性。

我想做的是:

  • 更改Jenkins中的关键属性

  • 按构建项目

  • 我的数据将覆盖属性文件中的数据,或者作为ant vars值直接传递给ant的任务。

  • 因此我收到了带有相应通知的新版本(它们是通过蚂蚁制作的)

是否有机制允许通过Jenkins使这种架构工作?

提前谢谢。

2 个答案:

答案 0 :(得分:9)

在Jenkins中,您可以使用parameterised build功能指定替换构建所需的参数。

例如,如果指定一个名为server的参数,并且在单击“立即构建”时输入test,则将使用您可以访问的环境变量{{1}执行构建}。

然后,在“Invoke Ant”构建步骤中,如果按 Advanced ... ,则会显示“属性”字段。您可以在此处输入${server} 这相当于调用my.ant.property=${server},并将扩展为ant -Dmy.ant.property=${server}

答案 1 :(得分:2)

另一个选项:使用此Env plugin为构建范围设置环境变量。因此,如果您使用的属性是环境变量或可以设置为它们,那么您希望使用此属性。虽然可能需要在更改构建脚本方面付出一些努力,但它可能是一个不错的选择:

问:为什么我会使用这个,因为我已经有参数化的构建插件

答:因为参数化的构建插件需要人工交互,如果有多个选择。例如,构建版本1或版本2或测试分支。

在Env插件中,您可以为每个选项设置一次属性,然后为每个选项创建相应的作业。然后安排工作,从而消除人为因素。