【问题标题】:using recent Rhino in ant script在 ant 脚本中使用最近的 Rhino
【发布时间】:2013-05-30 21:56:28
【问题描述】:

我正在尝试在 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 rhino


    【解决方案1】:

    我已经使用以下 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 中需要以下 jars:

    不是最漂亮的,但它确实有效。我会尝试更多,看看是否可以让它与 javax.script 一起使用。

    【讨论】:

      【解决方案2】:

      在 Ant 用户的邮件列表中查看以下回复:http://mail-archives.apache.org/mod_mbox/ant-user/201008.mbox/browser

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-05-08
        • 2020-06-15
        • 1970-01-01
        相关资源
        最近更新 更多