ant - 在 ant 脚本中使用最近的 Rhino

标签 ant rhino

我正在尝试在 ant 标记中使用最新版本的 Rhino,但它似乎使用的是与 JVM 捆绑在一起的 Rhino 版本。我试过调整类路径以指定 Rhino 脚本 jar。目前,我尝试了以下方法:

<project default="hello" name="hello-world" basedir=".">

    <target name="hello">

        <script language="javascript">

        <classpath>

            <pathelement location="js.jar"/>

        </classpath><![CDATA[

            x=<hello><world/></hello>

        ]]></script>    
    </target>

</project>

请注意脚本中包含的 E4X 语法,它应该只能在 Mozilla 的 Rhino 中使用,而不是与 JVM 捆绑在一起的那个。

js.jar 与 ant 脚本位于同一目录中。我还尝试将其重命名为 rhino.jar,因为我认为我已经看到表明这是必要的文档。

当我运行它时,它给出了以下错误:

javax.script.ScriptException: sun.org.mozilla.javascript.EvaluatorException: 语法错误 (#3)

因此,看起来它确实仍在使用 JVM 附带的 Rhino 版本。如何让它使用新版本?

最佳答案

我已经使用以下 Ant 项目让它工作了:

<project default="hello" name="helloworld" basedir=".">
   <target name="hello">
       <script language="javascript" manager="bsf">
       <classpath>
           <fileset dir="rhino-lib" includes="*.jar"></fileset>
       </classpath><![CDATA[
           x=<hello><world/></hello>
        echo = helloworld.createTask("echo");
        for (i=1; i<=10; i++) {

          echo.setMessage(i*i);
          echo.perform();
        }
        echo.setMessage(x);
        echo.perform();

       ]]></script>     
   </target>
</project>

您需要在 ./rhino-lib 中包含以下 jar:

虽然不是最漂亮的,但它确实有效。我会多尝试一下,看看是否可以让它与 javax.script 一起工作。

关于ant - 在 ant 脚本中使用最近的 Rhino,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3526960/

相关文章:

Ant:检查两个数字是否相等

ant - 在 Ant 中,如何从 exec 获取返回值?

java - Rhino 报告丢失 : after property id

mysql - 如何创建一个转储 mysql 转储的 ant 任务?

java - Jenkins 不会运行 PHPUunit - 权限被拒绝

javascript - 在 Javascript 中使用 Java 库

javascript - 如何在构建过程中自动化 jshint?

javascript - 如何拆分 IIFE 以适应 Java JVM/Rhino 64k 字节码限制

javascript - 使用 SQL 和 JavaScript 的用户首选项

Ant : find the last folder in a folder