在Ant脚本中将变量传递给arg

时间:2011-10-17 21:48:07

标签: ant

我有以下Ant命令。我需要将变量{merged.folder}传递给arg行。该值来自属性文件。但它并没有解决这个变量。有没有办法做到这一点。你能帮我吗?

<java fork="true" dir="${shrinksafe.util.path}/buildscripts" classname="org.mozilla.javascript.tools.shell.Main">
    <arg line="releaseDir=${merged.folder}" />
    <classpath>
        <pathelement location="${shrinksafe.util.path}/shrinksafe/js.jar" />
        <pathelement location="${shrinksafe.util.path}/shrinksafe/shrinksafe.jar" />
        <pathelement path="${java.class.path}" />
    </classpath>
</java>

1 个答案:

答案 0 :(得分:1)

我已经根据你的帖子检查了这个蚂蚁脚本:

<?xml version="1.0" encoding="UTF-8"?>
<project default="test_arg_path" basedir=".">
    <property file="props.properties"/>

    <target name="test_arg_path">
        <java dir=".\build\classes" classname="Test">
            <!-- <arg value="${argValue}"/>--> <!-- First variant -->
            <arg line="releaseDir=${argValue} arg2Value" /> <!-- Second variant -->
        </java>
    </target>
</project>

属性文件 props.properties

argValue=argVal

测试 类来源:

public class Test {
    public static void main(String[] args) {
        if (args.length == 0) {
            System.out.println("args is empty");
        }
        System.out.println(Test.class + ", arg0: " + args[0]);

        if (args.length > 1) {
            System.out.println(Test.class + ", arg1: " + args[1]);
        }
    }
}

第一个变体的输出(使用arg值):

  

class Test,arg0:argVal

第二个变体的输出(使用arg行):

  

class Test,arg0:releaseDir = argVal
  class Test,arg1:arg2Value

正如您所看到的,您的脚本一切正常,而且它是正确的。我认为,问题在于变量merged.folder

的值设置