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

发布于 2024-12-10 10:41:38 字数 594 浏览 0 评论 0原文

我有以下 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>

I've the following Ant command. I need to pass a variable {merged.folder} to the arg line. This value comes from a property file. But it is not resolving that variable. Is there any way to do this. Can you please help me?

<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>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

别把无礼当个性 2024-12-17 10:41:38

我根据您的帖子检查了此 ant 脚本:

<?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值):

测试类,arg0:argVal

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

测试类,arg0:releaseDir=argVal
测试类,arg1:arg2Value

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

I've checked this ant script based on your post:

<?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>

Property file props.properties:

argValue=argVal

Test class source:

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]);
        }
    }
}

The output for first variant (using arg value):

class Test, arg0: argVal

The output for second variant (using arg line):

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

As you can see, the everything is OK with your script and it is correct. The problem, I think, in value setting of your variable merged.folder

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文