【发布时间】:2017-05-05 10:51:35
【问题描述】:
我当前的任务是确保给定的 Java 项目在 Java (JRE) 上运行,从版本 6 到版本 9。有什么方法可以使用 Maven 做到这一点?
我想配置 maven-compilter-plugin 是其中的一部分。应该是
<source>1.6</source>
确保不使用更高版本的功能?那么<target>呢?
Maven 应该使用哪个 Java 版本运行? Java 9?
animal-sniffer-maven-plugin 看起来也很有趣,但不确定它是否适合这里。这也很困难,因为 Java 6 并不是真正的最低 API,因为 AFAIK 它有一些 Java 9 没有的类(例如来自 sun 和 com.sun 包的一些类)。
还有什么?有人已经这样做了吗?
【问题讨论】:
-
com.sun包不是 API 的一部分,不应被应用程序使用。 -
好吧,这不是我的应用程序。我没有在项目中使用那些 com.sun 类,很多年前有人使用过。我可能是找到并替换它们的人...
-
@mbee 如果您使用来自
com.sun的类,那么它将无法在带有 JPMS 的 Java 9 中运行。您必须首先重构您的应用程序以使其适合 Java 9 -
最后一条评论大多是假的。大多数
com.sun包仍然存在,并且可以通过命令行标志--add-exports访问 - 请参阅java -X或javac -X。看看这个帖子看看how to use Maven<args>with these flags。