5

当我在 macOS Sierra 上使用 Oracle 10.0.1 从 Maven 原型版本 1.3 创建一个新的 IntelliJ 2018.1 项目maven-archetype-quickstart时,我在执行 Maven 时收到此错误install

[错误] 无法执行目标 org.apache.maven.plugins:maven-surefire-plugin:2.20.1:test (default-test) on project h2e2: Execution default-test of goal org.apache.maven.plugins:maven -surefire-plugin:2.20.1:test failed.: NullPointerException -> [Help 1]

我在创建新项目后直接运行它。我没有写代码。我可以运行默认行:

    public static void main( String[] args ) { System.out.println( "Hello World!" ); }

…通过Run 'App.main()'在代码编辑器中单击的上下文菜单中进行选择。这行得通,但 Maveninstall失败了。

在 IntelliJ 的 Maven 窗格中执行cleaninstall不能解决问题。

在此处输入图像描述

如果我将 IntelliJ File> Project Structure> Project> Project SDK> 从 10.0.1 切换到 1.8.0_171 (并设置Project language level8 - Lambdas, type annotations etc.),那么 Maven 会install成功。

[信息] --------------------------------------------- -------------------------

[信息] 构建成功

[信息] --------------------------------------------- -------------------------

如果我将该设置返回到 Java 10,Maven 将install再次失败,并出现同样的错误。

我正在运行外部 Maven 3.5.3 而不是 IntelliJ 捆绑的旧版本,没有特别的原因。

我现有的基于 Java 8 的旧项目没有问题。我唯一的问题是尝试quickstart使用 Java 10 创建新的基于 Maven 的项目。

4

2 回答 2

4

以后的版本maven-surefire-plugin

Java 10 的原型似乎尚未更新。

根据此博客文章:http: //joshlong.com/jl/blogPost/java-10.html,您可以执行以下操作来启动并运行...

.... 不过,我想使用 Java 10,所以我打开了 pom.xml 文件并将 java.version 属性值更改为 10。它抱怨无法解析 JDK 的版本。我通过重新定义插件版本的属性来覆盖版本:2.21.0。

这里的重要部分是我认为更新到更高版本的surefire,如评论中所述。截至 2018-10,当前版本2.22.1.

<plugin>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.22.1</version>
</plugin>
于 2018-05-04T07:55:39.167 回答
0

Maarten的回答是正确和关键的。

将编译器源/目标设置为10

除了更新版本的 Answer 解决方案之外maven-surefire-plugin,要在 Java 10 上运行基于 Maven“Quickstart”原型的项目,您需要更改 POM 文件以指示 Java 10 将由编译器使用

改变这个:

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.7</maven.compiler.source>
    <maven.compiler.target>1.7</maven.compiler.target>
</properties>

将这对1.7匹配项替换为10

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>10</maven.compiler.source>
    <maven.compiler.target>10</maven.compiler.target>
</properties>
于 2018-07-20T20:50:26.133 回答