访问从ant脚本设置的ivy中的属性值
我有一个带有ant脚本的build.xml文件 在build.xml中,我将一个值设置为property env.REVISION, 在目标内部设置的值在目标外部不可访问。 例如,在下面的代码中${env.REVISION}被设置为1.0.1.0 但是目标“Get_Revision”中的echo给出了正确的值,但是目标“run”中的echo并不能替代版本号。echo语句将输出作为 ${env.REVISION}访问从ant脚本设置的ivy中的属性值,ant,ivy,Ant,Ivy,我有一个带有ant脚本的build.xml文件 在build.xml中,我将一个值设置为property env.REVISION, 在目标内部设置的值在目标外部不可访问。 例如,在下面的代码中${env.REVISION}被设置为1.0.1.0 但是目标“Get_Revision”中的echo给出了正确的值,但是目标“run”中的echo并不能替代版本号。echo语句将输出作为 ${env.REVISION} <project name="module_name" default="ru
<project name="module_name" default="run" xmlns:ivy="antlib:org.apache.ivy.ant">
...
<target name="run" description="Run" depends="Get_Revision">
<antcall target="Get_Revision" />
<echo>${env.REVISION}</echo>
<ivy:retrieve/>
</target>
<target name="Get_Revision" description ="Gets the revision number">
...
<property name="env.REVISION" value="1.0.1.0" />
<echo>${env.REVISION}</echo>
...
</target>
...
</project>
...
${env.REVISION}
...
${env.REVISION}
...
...
另外,我还想在ivy.xml文件中使用这个属性${env.REVISION}
有人能帮我解决这个问题吗?使用任务时,您会创建一个新的上下文:
在新项目中运行被调用的目标;要意识到这一点
表示被调用目标设置的属性、引用等不会
持续返回调用项目
在如图所示的示例中,您正在对运行
目标使用依赖
声明,以及对获取修订
目标使用antcall
由于上述原因,antcall
将不会给出您想要的结果
但是,依赖于
确实给出了您想要的结果。当包含依赖项时,您确定您的测试场景(第二个echo)失败了吗
顺便说一句,env.
前缀通常用于从环境变量加载的属性,如下所示:
<property environment="env"/>
<echo>${env.SOME_VAR_NAME}</echo>
${env.SOME_VAR_NAME}
对不起,我在实际脚本中没有使用depends=“Get\u REvision”。但是我不想在这种情况下使用depends..只有当目标中的属性集必须返回给调用方时,antcallantcallback任务才能正常工作