java - 测试包中的类在 IntelliJ 中编译时不可用

标签 java maven testing intellij-idea

我的设置如下:

IntelliJ setup

我有两个模块:moduleamoduleb,在这种情况下,moduleb依赖于modulea> 定义为:

<dependency>
    <groupId>org.example</groupId>
    <artifactId>module-a</artifactId>
    <version>1.0-SNAPSHOT</version>
    <type>test-jar</type>
</dependency>  

这允许我在开发时在 ClassInSourceB 中使用 ClassInTestA 而不会出现任何问题:

Using class in test folder in the source folder of another project

但是,当我尝试构建项目时,此错误阻止 IntelliJ 完成构建:

Compilation error

我在SO中遇到过类似的问题:

但是,所提出的解决方案都无法帮助我解决问题。我创建了一个可用的 MVCE here as zipin GitHub

我正在工作的现实世界项目是 neo4j ,遵循此结构。此外,使用 mvn install/package 进行编译没有任何问题,在 IntelliJ 中工作时会出现问题。

最佳答案

一般来说,通过首先使用 mvn clean package 在 IntelliJ 外部构建新项目来“打开”新项目,然后通过“打开”父模块来导入它是有意义的。这对我有用:

enter image description here

即使在重建之后:

enter image description here

如果您不想通过删除所有 IDEA 文件夹和文件来重新导入您的项目并使用上述方式,您可以尝试通过 Maven 工具栏构建项目(在父模块上清理并打包),然后使用“重新导入所有 Maven 项目”按钮:

enter image description here

至少有时这对我有用,但老实说并不总是如此。

关于java - 测试包中的类在 IntelliJ 中编译时不可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51532712/

相关文章:

java - 创建一个以元组为键的哈希表

maven - 为什么 SBT 无法解决我的依赖问题?

java - 如何将 Maven 模块作为 .class 依赖项而不是 jar 嵌入?

java - 由 : java. lang.ClassNotFoundException : org. openqa.selenium.browserlaunchers.DoNotUseProxyPac 引起

testing - 如何测试以确保我的应用程序在部署升级期间是安全的?

java - 对字符串数组对象的列表进行排序

java - 如何初始化 WifiP2pmanager.channel?

Java + MongoDB : Updating multiple fields in a document

user-interface - 主要使用 Tcl/Tk 编写的应用程序的 GUI 测试

java - IntelliJ 无法解析 gradle java 跨模块测试依赖