所以想迁移到Java 11,但是你的Maven项目仍然停留在Java 8上吗?你不太关心新的模块系统在Java 9中引入的,只想让你的应用程序在最新的JDK版本上运行?那么这个向导是给你的。它包含了我在将我们的产品迁移到Java 11时学到的所有知识。
从2019年起,Oracle Java 8将不再接收免费的安全更新。所以现在是时候迁移到JDK 11.
清理你的pom.xml档案
在考虑升级Java版本之前,应该做的第一件事是清理pom.xml档案。如果你的项目是一个多模块maven项目,那么它有助于建立父POM并进行维护。dependencyManagement朗德pluginManagement在这个文件里。这样,所有的插件和依赖项都定义在一个文件中,而不是分散在多个POM文件中,这使得管理版本更加容易。
为了将项目迁移到最新的JavaVersion 11,强烈建议将尽可能多的插件和依赖项更新到最新的稳定版本。如果使用旧版本,许多插件(如编译器插件、尽到火插件或故障安全插件)与Java 9不兼容。而且,许多库不兼容,不需要迁移到最新版本。
确保在主POM中配置了版本插件:
<plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>versions-maven-plugin</artifactId> <version>2.5</version> <configuration> <generateBackupPoms>false</generateBackupPoms> </configuration> </plugin>
此插件有助于查找模块的最新插件或依赖版本。打开终端并执行以下命令,查找必须更新的插件版本:
mvn versions:display-plugin-updates
将看到一个插件列表在项目中使用的更新版本可用。更新所有这些插件到最新的稳定版本。在更新插件版本之后,请确保项目仍然正确编译和运行。
你可以用mvn -N ...从您的项目根目录,只检查您的父POM,以防止多模块项目。
为Java 11配置插件
Java 11中最重要的插件是编译器插件、确定性插件(用于单元测试)和故障安全插件(用于集成测试)。
为了编译Java 11的项目,添加release配置到编译器插件,这是一个新的编译器参数,用于替换source和t