Java 10运行Maven quickstart原型及IntelliJ项目Maven Install报错求助
1. 如何在Java 10环境下运行Maven的“quickstart”原型?
其实操作核心和低版本Java环境下差不多,但有个关键前提:一定要用Maven 3.5.0及以上版本,因为从这个版本开始Maven才正式支持Java 10。
具体步骤走一遍:
- 先确认环境配置没问题:打开终端,分别执行
java -version和mvn -version,输出里得能看到Java 10的版本信息,同时Maven版本要符合要求。 - 切换到你想创建项目的目录,执行原型生成命令:
这里特意指定了mvn archetype:generate -DgroupId=com.yourcompany.yourproject -DartifactId=your-project-name -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.3 -DinteractiveMode=falsearchetypeVersion=1.3,因为这个版本的quickstart原型已经适配了Java 9+的模块系统,能避免一些不必要的兼容性坑。 - 进入生成的项目文件夹,执行
mvn clean install就能正常构建。如果是用IntelliJ这类IDE,直接导入这个Maven项目就行,IDE会自动识别Java 10环境。
2. 解决macOS Sierra + Java 10.0.1 + IntelliJ 2018.1下Maven install的NullPointerException报错
你碰到的这个NullPointerException,根源是maven-surefire-plugin 2.20.1和Java 10不兼容——这个版本的插件在处理Java 10的测试运行逻辑时会触发空指针问题。
解决起来很简单,把surefire插件升级到兼容Java 10的版本就行,比如2.22.0及以上:
- 打开项目的
pom.xml,找到<build>节点下的<plugins>,添加或修改surefire插件的配置:<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.22.2</version> </plugin> - 保存pom.xml后,重新执行
mvn clean install,这个空指针错误就会消失了。
额外提一句:IntelliJ 2018.1对Java 10的支持已经比较成熟,但默认生成的Maven项目可能会绑定旧版本的surefire插件,所以手动升级插件是解决问题的关键。
内容的提问来源于stack exchange,提问作者Basil Bourque
相关产品推荐
相关产品推荐

