如何使用 Jenkins 参数化构建?
Posted
技术标签:
【中文标题】如何使用 Jenkins 参数化构建?【英文标题】:How to use Jenkins parameterized builds? 【发布时间】:2013-09-30 05:45:00 【问题描述】:Jenkins 允许您对构建进行参数化,但我不知道如何实际使用它:
假设我通常会像这样从命令行启动我的 Ant 构建:
ant -buildfile /path/to/my/build.xml -DpackageType=jar package
这将调用build.xml
的package
目标,并为其提供一个名为packageType
的属性,其值为jar
。
我假设在上面的屏幕截图中,Name 字段是我指定packageType
的位置,但值呢?
-
如果 Jenkins 要我为属性指定一个默认值,那么我应该在哪里指定我的项目正在使用的值?例如,我可能想要
war
的默认值,但让这个 Jenkins 作业传入 jar
的值(以覆盖默认值)。
另外,Jenkins 所说的“...允许用户保存输入实际值。”是什么意思?哪个用户?无论如何,您会在哪里输入值?
提前致谢!
【问题讨论】:
【参考方案1】:每当用户在 Jenkins 中配置参数化构建时,参数名称都会被视为环境变量
用户可以通过环境变量使用这些参数。
例如,在您的情况下,如果 packageType 是您要传递的参数,
然后将名称指定为 packageType 并将值指定为 war
您可以在所需的脚本中使用它作为 %packageType%
(用于 Batch)或 $packageType
(用于 shell)
配置作业后,每当您单击立即构建按钮时,Jenkins都会提示输入参数
当你使用文件参数时,上传的文件会被放到工作目录中
【讨论】:
啊,这对我来说将所有内容联系在一起:Jenkins 在构建时提示您。现在说得通了——谢谢! 从 Jenkins “Execute Shell”,我能够通过$FOOBAR
访问 String Parameter
的值,其中 FOOBAR
是构建参数。使用 %FOOBAR%
对我不起作用。
%PARAM% 用于批处理,$PARAM 用于外壳以上是关于如何使用 Jenkins 参数化构建?的主要内容,如果未能解决你的问题,请参考以下文章
Jenkins参数化构建之 Maven command line使用Jenkins参数