我使用Jenkins作为CI。我有一个build.xml。 Build.xml
的代码如下所示。
<property name="environment" value="$environment}" />
如何将值从Jenkins传递给build.xml?我可以通过环境变量传递它吗?
答案 0 :(得分:7)
您的环境变量可通过environment属性获得。 在下面的示例中,环境变量 VIEW 通过 $ {env.VIEW} 从简单的hello world ant脚本打印。将VIEW更改为感兴趣的环境变量的名称。
<?xml version="1.0" encoding="UTF-8"?>
<project name="Hello World" default="Hello" basedir=".">
<property environment="env"/>
<property name="HelloText" value="Hello"/>
<target name="Hello">
<echo>VIEW=${env.VIEW}</echo>
</target>
</project>
重要!请注意,需要此行才能让ant了解env.VIEW
:
<property environment="env"/>
答案 1 :(得分:3)
如果您的ant构建依赖于属性environment
:
<property
name="environment"
value="a_value_I_edit_just_before_run_ant_default_target_mannually" />
你可以配置你的Jenkins&#39;用参数构建的作业:
所以Jenkins将登录(例如在Windows上):
cmd.exe /C '"ant.bat ant -file build.xml -Djenkins_environment=myValue && exit %%ERRORLEVEL%%"'
然后你可以修改你的ant构建来检查系统属性:
<property
name="manually_edited_environment"
value="a_value_I_edit_just_before_run_ant_default_target_manually" />
<condition property="environment"
value="${jenkins_environment}"
else="${manually_edited_environment}">
<isset property="jenkins_environment" />
</condition>
如果设置jenkins_environment
属性,则environment
获取其值,否则environment
获取manually_edited_environment
的值;构建的剩余部分仍取决于属性environment
。
如果您无法正确匹配-DpropertyName
,请使用echoproperties ant task来记录所有系统属性。
答案 2 :(得分:0)
你的蚂蚁脚本应如下所示: -
<target name="test" >
<property environment="env" />
<echo>BUILD_NUMBER: ${env.BUILD_NUMBER}</echo>
</target>
答案 3 :(得分:-1)
您可以使用构建参数(例如:myParameter)设置属性,并使用${myParameter}
的ant脚本获取它们。
请确保您不要在jenkins的参数名称中使用点,因为在ant脚本中获取它们可能会出现问题。
至于环境变量,我不知道,抱歉。
答案 4 :(得分:-1)
考虑如上所述的参数化构建,例如,您必须在作业中设置名为environment
的变量并从user获取其值。现在您可以使用property name="environment" value="$environment}
在build.xml中引用其值