Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
访问从ant脚本设置的ivy中的属性值_Ant_Ivy - Fatal编程技术网

访问从ant脚本设置的ivy中的属性值

访问从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

我有一个带有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="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任务才能正常工作