我的设置如下:
我有两个模块:modulea和moduleb,在这种情况下,moduleb依赖于modulea> 定义为:
<dependency>
<groupId>org.example</groupId>
<artifactId>module-a</artifactId>
<version>1.0-SNAPSHOT</version>
<type>test-jar</type>
</dependency>
这允许我在开发时在 ClassInSourceB
中使用 ClassInTestA
而不会出现任何问题:
但是,当我尝试构建项目时,此错误阻止 IntelliJ 完成构建:
我在SO中遇到过类似的问题:
但是,所提出的解决方案都无法帮助我解决问题。我创建了一个可用的 MVCE here as zip和 in GitHub 。
我正在工作的现实世界项目是 neo4j ,遵循此结构。此外,使用 mvn install/package
进行编译没有任何问题,在 IntelliJ 中工作时会出现问题。
最佳答案
一般来说,通过首先使用 mvn clean package
在 IntelliJ 外部构建新项目来“打开”新项目,然后通过“打开”父模块来导入它是有意义的。这对我有用:
即使在重建之后:
如果您不想通过删除所有 IDEA 文件夹和文件来重新导入您的项目并使用上述方式,您可以尝试通过 Maven 工具栏构建项目(在父模块上清理并打包),然后使用“重新导入所有 Maven 项目”按钮:
至少有时这对我有用,但老实说并不总是如此。
关于java - 测试包中的类在 IntelliJ 中编译时不可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51532712/