【问题标题】:Replacing javascript nashorn:mozilla_compat.js use in ant script替换 javascript nashorn:mozilla_compat.js 在 ant 脚本中使用
【发布时间】:2020-06-15 06:27:23
【问题描述】:

Oracle 已经贬值了 nashorn,我在我的 apache ant 构建脚本中使用它。

这是一个简短的例子;

try{load("nashorn:mozilla_compat.js");}catch(e){;}
    importClass(java.io.File);
    var sourceName = project.getProperty("build.source.dir") + "/" +project.getProperty("teiFile") + ".xml";
    var targetName = project.getProperty("build.search.dir") + "/" + project.getProperty("teiFile") + ".xml";
    var sourceFile = new File("", sourceName);
    var targetFile = new File("", targetName);
    var uptodate = targetFile.exists() && sourceFile.lastModified() < targetFile.lastModified();
      var sourcePrefix = project.getProperty("teiFile");
      if(!uptodate & !sourcePrefix.startsWith("G")) {
         ......
       }
}

我听说过有人提到 Rhino 或 graalVM 作为替代品,但似乎每个都有相当长的缺陷列表。关于当前活跃且稳定的库的建议。

谢谢,斯科特

【问题讨论】:

  • 虽然我不知道您的 ...... 行代表什么,但我怀疑您展示的部分可以通过常规 Ant 任务完成。

标签: javascript java build ant nashorn


【解决方案1】:

GraalVM 当前处于活动状态,稳定,有一个Nashorn compatibility mode。 您可以使用 GraalVM 运行您的 ant 脚本,并且默认包含 JS 引擎。或者您可以将 GraalVM 的 JavaScript 作为一些依赖项并在 OpenJDK 上运行,这会更慢,并且可能是 OpenJDK 和 GraalVM 的 JavaScript 的未经测试的组合,但 can also work

【讨论】:

  • Oleg,感谢您提供更新信息。我会给 GraalVM 一个机会并报告。
  • 具体来说,您应该在调用 ant 之前将其设置为您的 ANT_OPTS:ANT_OPTS="-Dpolyglot.js.nashorn-compat=true" ant 请参阅我们的FAQ
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-06-09
  • 1970-01-01
  • 2013-09-01
  • 1970-01-01
  • 2010-09-18
  • 1970-01-01
  • 2013-05-20
相关资源
最近更新 更多