我正在尝试使用Java 9编译我的java项目。 我正在使用java.xml.bind包,所以我需要使用-addmods选项 用于编译。 Ant 1.9.7似乎不支持这个新功能。 ant支持Java 9编译器的-addmods选项吗?
答案 0 :(得分:5)
此时Ant的任何已发布版本都没有明确的支持。但是你应该能够<jvmarg>
使用
<java ....>
<jvmarg value="--add-modules"/>
<jvmarg value="module.name.to.add"/>
<jvmarg ..../>
</java>
如果您询问的是<javac>
而不是<java>
,则可以使用<compilerarg>
代替。
Java 9有很多方法可以破解Ant - 而1.9.8和1.10.x将包含很多修复方法(一旦最后的已知问题得到解决,很快就会有新的版本发布) 。但是,现在没有明确支持--add-modules
,仅适用于已在Ant 1.9.7中添加的modulepath
和upgrademodulepath
。
恕我直言 - 虽然是一个很好的增强请求。
答案 1 :(得分:-1)
至少使用Ant 1.10.1并在build.xml中执行以下操作:
<condition property="java9">
<equals arg1="${ant.java.version}" arg2="9"/>
</condition>
<java classname="....." fork="true">
<classpath>
<pathelement location="...."/>
</classpath>
<jvmarg value="--add-modules" if:set="java9" />
<jvmarg value="java.xml.bind" if:set="java9" />
...
</java>