如何在 Javascript 任务中解析 A​​pache ANT 中的变量

How to resolve variables in Apache ANT inside Javascript task

我正在通过此任务从 Apache ANT 调用 javascript:

<property name="myprop" value="someval" />
<script language="javascript" src="mytask.js" />

在 js 里面我有变量 foo:

 var foo = '${myprop} - bar';

如何从拥有的 ANT 文件中解析变量 foo 的属性?

根据 script 任务文档中的示例,可以从提供的 project 参考中检索 属性:

<property name="fs.dir" value="src"/>

<target name="main">
    <script language="javascript"> <![CDATA[

    // Access to Ant-Properties by their names
    dir = project.getProperty("fs.dir");

有一个未记录的方法 project.replaceProperties 接受一个字符串和 returns 字符串。即:

project.replaceProperties('foo - ${myprop}');

我通过 运行 下面的代码找到了它,它列出了给定 Java 对象的所有方法:

function log(str)
{
    var echo = project.createTask("echo");
    echo.setMessage(str);
    echo.perform();
}

function getAllMethods(object) {
    return Java.from(object.class.getDeclaredMethods());
}

var all = getAllMethods(project);
for(var a = 0; a < all.length; a++)
    log(all[a]);