Maven:确保跨Java版本兼容性
作者:互联网
我当前的任务是确保给定的Java项目从版本6到版本9在Java(JRE)上运行.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软件包的某些类).
还有什么?有人做过吗?
解决方法:
关于此的一些注意事项(也许不是真正的答案):
首先,sniffer-maven-maven-plugin插件可以检查您的代码是否仅使用JDK 6(API)中的代码,这是您必须检查的最低部分(或其他JDK版本).
此外,您需要检查您的项目是否具有对jar的依赖关系,该jar包含字节代码并不需要多于基于JDK 6的代码.
< target> /<来源>不会保证这样的事情.他们仅确保生成的jar文件(类文件格式)至少可以在JRE 6上使用,但不能确保它也可以在JRE 9上运行.
如果需要在JRE 9上运行,则需要在项目中包含module-info.java文件.
此外,您的项目使用com.sun.*,据我所知,您有很多事情要做,因为大多数或全部已被声明为弃用/或com.sun.*仅内部使用,不属于公众. API(如果要在具有JDK的Mac上运行,则这些类将不存在)很长时间(请参阅here).
您可以看一下Maven Core,因为我们需要确保Maven也在JRE 9上运行…(我们正在使用JDK 9 EA软件包进行测试).在这里,我们使用animal-sniffer-maven-plugin等来确保此功能正常.
标签:maven,java-9,java 来源: https://codeday.me/bug/20191111/2019635.html