2012-08-16 125 views
4

使用ant构建下一个项目版本的过程太多了。该例程位于运行ant任务之前必须编辑的多个属性文件中。我看看詹金斯是一个制作版本的系统(包括夜晚版本),但是我在更改属性时遇到了问题。如何配置Jenkins以使用ant和自定义参数来构建项目

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

我真正的意思是下面的架构(我用于手动建立):

  • 那里是包含关于构建版本,SRC目标数据2个属性文件,电子邮件,以通知新建和等等。

  • 相应属性的键用于Ant任务,这些属性在构建之前会被手动更改。

  • 某些属性由Java util读取并在构建期间用于其自己的部分。

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

我想要做的是:在詹金斯

  • 变化的关键属性

  • 按建设项目

  • 我的数据会覆盖数据属性文件或将作为蚂蚁变量值直接传递给蚂蚁的任务。

  • ,结果我收到新建立相应的通知(他们通过蚂蚁制造)

是否有机制,使一个通过詹金斯使这种模式的工作?

预先感谢您。

回答

9

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

例如,如果指定一个名为server参数,当点击“现在建”,您进入test,生成将与您可以访问称为${server}的环境变量执行。

然后,在您的“调用Ant”构建步骤中,如果您按高级......,则显示“属性”字段。在这里你可以输入my.ant.property=${server}
这相当于拨打ant -Dmy.ant.property=${server},并将扩展到ant -Dmy.ant.property=test

+0

我是否正确理解这个佯攻不会在物理上覆盖这个值,它会在一次构建中替代它? – Dragon 2012-08-16 13:15:57

+0

@Dragon正确,因为这是使用ant -D开关,它只有一个运行时覆盖,属性的物理值不会改变。 如果这个解决方案适合你,那么你可能也想检查一下:https://wiki.jenkins-ci.org/display/JENKINS/Extended+Choice+Parameter+plugin – 2012-08-17 02:40:54

2

另一种选择:使用此Env plugin为构建范围设置环境变量。所以如果你使用的属性是环境变量或者可以设置为它们,那么你想使用这个。虽然它可能涉及一些努力在改变构建脚本,但它可以是一个很好的选择:

问:我为什么会用这个,因为我已经参数化生成插件

答:由于如果有多个选项,参数化构建插件需要人机交互。例如构建版本1或版本2或测试分支。

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

相关问题