java-11 - 带有 Graal VM 的 Apache Ant
问题描述
我们将 Apache Ant 与 Nashorn JavaScript 引擎一起使用,该引擎在 jdk 15 及更高版本中已被弃用和删除。我试图找到如何从 Nashorn 切换到 Graal VM,但即使在 Apache 网站上也没有找到任何可用信息。请告知我需要哪些罐子,应该放哪些罐子。我们有什么需要改变的代码。如果有人已经这样做了,请分享您的经验。我有一个示例,它针对 jdk1.8.0_311 运行:
<?xml version="1.0" ?>
<project name="test" default="test">
<property environment="env"/>
<target name="test" >
<script language="javascript">
<![CDATA[
load("nashorn:mozilla_compat.js");
importPackage(java.time);
var today = new Date();
var date = today.getFullYear()+'-'+(today.getMonth()+1)+'-'+today.getDate();
self.log("This script is for Test Of Nashorn Javascript Engine");
print ("Today is: " + date );
]]>
</script>
</target>
</project>
结果如下:
test:
[script] Warning: Nashorn engine is planned to be removed from a future JDK release
[script] This script is for Test Of Nashorn Javascript Engine
[script] Today is: 2021-11-3
BUILD SUCCESSFUL
Total time: 0 seconds
解决方案
您还可以将独立的 Nashorn作为依赖项添加到您的 Ant 构建中;将它放在您的 Antlib
目录中应该可以。默认情况下,$ANT_HOME/lib
但某些 Ant 安装使用不同的位置,例如,自制安装的 Ant 将使用/usr/local/share/ant
. 如果你不想把它放在 lib 中,你也可以把它和你的项目放在一起,并在标签内使用<classpath>
or来指向它。<classpathref>
<script>
请注意,独立的 Nashorn 在类路径上也需要 ASM 7.3.1。两者的 JAR 都可以从 Maven Central 下载。
推荐阅读
- java - MVP Android:如何将数据从一个活动传递到另一个活动?
- r - 前向填充 ar 数据表中的行
- python - 如果 NaN 与 pandas 我如何检查单元格?
- python - 无法导入 Pytorch
- reactjs - 访问 API 后 Axios 未显示数据响应
- python - 在 Kivy 中更改 RecycleView 生成的按钮的文本
- javascript - Vue.JS 在监视属性中等待 for 循环完成
- python - 当我打开一个应该用 python 创建另一个文件的批处理文件时,python 会打开它但它不会创建文件
- jenkins - 如何将 Jenkins 推向 IAAC?
- c# - 名称与集合匹配的 Lucene 查询文档