如何在JDK 9中为IntelliJ添加测试依赖项?

时间:2017-04-22 11:33:47

标签: java maven intellij-idea java-9

我正在使用java 9(build 9-ea + 165)使用maven 3.3.9构建一个项目。测试运行和构建成功。

然而。 IntelliJ Idea 2017.1.2抱怨并且不会编译/运行测试,并且消息“模块中没有模块'junit.jupiter.api'的要求。

如何为IntelliJ添加此项? 有必要吗?

截图: Screenshot from editor in IntelliJ.

项目结构: Project structure

来自pom:

<dependencies>
    <!-- testing -->
    <dependency>
        <groupId>org.hamcrest</groupId>
        <artifactId>hamcrest-all</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-api</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.mockito</groupId>
        <artifactId>mockito-core</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>
<build>
    <pluginManagement>
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.6.1</version>
                <configuration>
                    <source>9</source>
                    <target>9</target>
                    <showWarnings>true</showWarnings>
                    <showDeprecation>true</showDeprecation>
                </configuration>
            </plugin>
            <plugin>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.19</version>
                <dependencies>
                    <dependency>
                        <groupId>org.junit.platform</groupId>
                        <artifactId>junit-platform-surefire-provider</artifactId>
                        <version>1.0.0-M4</version>
                    </dependency>
                    <dependency>
                        <groupId>org.junit.vintage</groupId>
                        <artifactId>junit-vintage-engine</artifactId>
                        <version>4.12.0-M4</version>
                    </dependency>
                </dependencies>
            </plugin>
        </plugins>
    </pluginManagement>

    <plugins>
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
        </plugin>
        <plugin>
            <artifactId>maven-surefire-plugin</artifactId>
        </plugin>
    </plugins>
</build>

2 个答案:

答案 0 :(得分:0)

您的项目结构可能不再有效。您可以尝试检查包含测试的文件夹是否是您的实际测试文件夹:

  1. 按[Ctrl] [Alt] [Shift] [S]打开项目结构。
  2. 打开&#34;模块&#34;
  3. 打开&#34;来源标签&#34;
  4. 包含测试的文件夹应标记为&#34;测试&#34; (图标为绿色)

答案 1 :(得分:0)

有几个选项

首先,您可能没有首先将项目正确导入IntelliJ。在这种情况下,最快的事情通常是简单地关闭项目,从源目录(.idea目录和任何*.i?l文件)中删除intellij文件,并重新打开相应的根pom文件,使用open选项(如果它为您提供选项,请选择创建新项目并删除旧项目)。

第二个选项是你已经正确地打开了项目,但是你没有重新导入它,因为更改了pom并且你没有打开自动导入,你忽略了要求你重新加载的通知。在这种情况下,只需打开maven窗口(通常是从屏幕右侧的水平按钮),然后点击maven窗口左上角的重新导入按钮。

第三种选择是吹掉你的缓存。这可以通过文件菜单轻松完成。

可能还有其他人。我是自下而上的。