我正在使用java 9(build 9-ea + 165)使用maven 3.3.9构建一个项目。测试运行和构建成功。
然而。 IntelliJ Idea 2017.1.2抱怨并且不会编译/运行测试,并且消息“模块中没有模块'junit.jupiter.api'的要求。
如何为IntelliJ添加此项? 有必要吗?
来自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>
答案 0 :(得分:0)
您的项目结构可能不再有效。您可以尝试检查包含测试的文件夹是否是您的实际测试文件夹:
答案 1 :(得分:0)
有几个选项
首先,您可能没有首先将项目正确导入IntelliJ。在这种情况下,最快的事情通常是简单地关闭项目,从源目录(.idea
目录和任何*.i?l
文件)中删除intellij文件,并重新打开相应的根pom文件,使用open
选项(如果它为您提供选项,请选择创建新项目并删除旧项目)。
第二个选项是你已经正确地打开了项目,但是你没有重新导入它,因为更改了pom并且你没有打开自动导入,你忽略了要求你重新加载的通知。在这种情况下,只需打开maven窗口(通常是从屏幕右侧的水平按钮),然后点击maven窗口左上角的重新导入按钮。
第三种选择是吹掉你的缓存。这可以通过文件菜单轻松完成。
可能还有其他人。我是自下而上的。