我计划从Java 8迁移到Java 11,但是由于8和11中的某些JRE库不向后兼容(有很多软件包被删除,请参见https://openjdk.java.net/jeps/320),因此很难验证是否我的依赖项与Java 11兼容。
想象下面的pom.xml:
<dependency>
<group>oldgroup</group>
<artifact>oldartifact</artifact>
<version>oldversion</version>
</dependency>
如果这个旧的依赖项是使用Java 8编译的,则可以包括从javax.xml.bind
之类的软件包中导入的内容,这些软件包不再与JRE 11打包。
这意味着我的项目可以使用Java 11成功编译,但是在运行时失败,例外情况为java.lang.NoClassDefFoundError: javax/xml/bind/JAXB
。
有没有一种方法可以在构建过程中执行验证(Maven / Gradle插件?)。