【发布时间】:2020-06-09 23:54:50
【问题描述】:
更新:不仅是 IntelliJ 有问题,而且原因似乎是因为我的设置无法在 Gradle 中构建。仍然不确定为什么。
我正在尝试设置 intellij 以识别复合 gradle 构建。我有依赖于项目 B 的项目 A,如下所示:
/p/projecta
/p/projectb
我尝试了很多东西,但 IntelliJ 在我尝试从 project-a 访问的 project-b 中找不到任何声明。例如,在下面的 ProjectA.java 中,IntelliJ 将 Project B 的导入标记为 Cannot resolve symbol ProjectB
// projecta/src/main/java/projecta/ProjectA.java
import projectb.ProjectB; // 'Cannot resolve symbol ProjectB'
// projectb/src/main/java/projectb/ProjectB.java
public class ProjectB {
}
// projecta/settings.gradle
rootProject.name = 'projecta'
includeBuild '../projectb'
// projectb/settings.gradle
rootProject.name = 'projectb'
尽管进行了上述配置,但它不起作用。 IntelliJ 继续将项目 B 中的所有符号标记为不可解析。
我尝试过的其他事情
- 从 settings.gradle 中删除 includeBuild,然后右键单击项目 A 的 gradle 窗口,转到“复合构建配置”并从那里添加项目 B。同样的问题。
- 将此代码添加到项目 A 中的 build.gradle 中
tasks.register('run') {
dependsOn gradle.includedBuild('projectb').task(':run')
}
- 将项目 B 放入磁盘上的项目 A 中:
/p/projecta/projectb然后将 projecta/settings.gradle 中的 includeBuild 更改为includeBuild 'projectb' - #2 的许多变体试图让 IntelliJ 识别 gradle 依赖项。
【问题讨论】:
-
你可以通过 Gradle 从命令行构建吗?如果一个项目使用另一个项目作为依赖项 - 您必须在 build.gradle 文件中对其进行配置:docs.gradle.org/current/userguide/…
-
不,它不会从命令行构建,与 intellij 给出的错误相同
-
/p/projecta/src/main/java/projecta/ProjectA.java:2: 错误:包projectb不存在import project.ProjectB;
标签: gradle intellij-idea