如何在ant build.xml

我有一只蚂蚁build.xml

我试图将计算机的标准主机名(例如:“ abc-us.xyz.com”)设置为ant中的环境变量,然后尝试在任何地方使用该环境变量。

但无法这样做。

到目前为止,我尝试过的是:

    <target name="get-fqdn">
    <echo>Getting the fully qualified hostname of the machine</echo>
    <exec executable="/bin/bash">
    <env key="FQDN" value="hostname-f"/>
    </exec>
    </target>

根据上面的代码,我希望它将hostname -f的值设置为环境变量FQDN

然后我有另一个目标:

    <target name="get-database" depends="init,get-fqdn">
    <echo>Getting the database*************</echo>
    <echo>$FQDN</echo>
    </target>

在第二个目标中,我试图访问环境变量 FQDN,已经在第一个目标中设置了。

但是它不起作用。请帮助

FQDN时在第二个目标中没有获得echo的值。

pengqy54 回答:如何在ant build.xml

首先,任何<exec>调用都将在其自己的外壳中运行,因此,您在此调用中设置的任何环境变量都将仅存在于此外壳中,而不存在于父外壳(Ant)中。您需要一种方法来存储环境变量的值,这种方法可以在shell调用过程中保持不变,例如存储在属性文件中:

<target name="get-fqdn">
  <exec executable="/bin/bash">
    <env key="FQDN" value="some_host.com"/>
    <arg value="-c"/>
    <arg line="echo FQDN=$FQDN > fqdn.properties"/>
  </exec>
</target>

然后您要做的就是加载此属性文件,并使它包含的属性可用于Ant:

<target name="get-database" depends="get-fqdn">
  <property file="fqdn.properties"/>
  <echo message="retrieved FQDN=${FQDN}"/>
</target>
本文链接:https://www.f2er.com/3145957.html

大家都在问