IntelliJ won';t从gradle复合构建导入模块
更新:IntelliJ不仅有问题,而且原因似乎是因为我的设置无法在Gradle中构建。仍然不确定为什么 我正在尝试设置intellij来识别复合gradle构建。我有一个项目A,它依赖于项目B,如下所示:IntelliJ won';t从gradle复合构建导入模块,gradle,intellij-idea,Gradle,Intellij Idea,更新:IntelliJ不仅有问题,而且原因似乎是因为我的设置无法在Gradle中构建。仍然不确定为什么 我正在尝试设置intellij来识别复合gradle构建。我有一个项目A,它依赖于项目B,如下所示: /p/projecta /p/projectb 我尝试了很多东西,但是IntelliJ在project-b中找不到我试图从project-a访问的任何东西的声明。例如,在下面的ProjectA.java中,IntelliJ将项目B的导入标记为无法解析符号ProjectB //projecta
/p/projecta
/p/projectb
我尝试了很多东西,但是IntelliJ在project-b
中找不到我试图从project-a
访问的任何东西的声明。例如,在下面的ProjectA.java
中,IntelliJ将项目B的导入标记为无法解析符号ProjectB
//projecta/src/main/java/projecta/projecta.java
导入项目b.projectb;//'无法解析符号ProjectB'
//projectb/src/main/java/projectb/projectb.java
公共类项目B{
}
尽管有上述配置,但它不起作用。IntelliJ继续将项目B中的所有符号标记为不可解析
我试过的其他事情
/p/projecta/projectb
,然后将projecta/settings.gradle中的includebild更改为includebild“projectb”
我最近遇到了这个问题,并且解决了它,所以我想在这里作出回应,这样其他人可以从我在参数和尝试与错误的丛林中的搜寻中受益 我有完全相同的项目,如问题中所述。使用Gradle 5.0,Intellij能够正确导入和链接我的源代码,并且我能够在命令行上正确构建。当我将Gradle版本升级到5.6及更高版本时,Intellij不再能够正确链接源代码。重新导入我的项目实际上可以工作,但是表示包含的构建的依赖项将以红色突出显示,并且控制台会说它无法解决它。5.6之后的每个Gradle版本都会出现这种情况 根本原因似乎是Intellij在Gradle中使用Java11,而我将
sourceCompatibility
设置为10。这似乎打破了Gradle的最新版本(可以理解)
我还可以通过在我的项目的build.gradle中添加以下内容来解决这个问题
java {
disableAutoTargetJvm()
}
然而,我刚刚将Intellij中的JDK for Gradle更新为Java 10,一切都正常了……你能从Gradle的命令行构建吗?如果一个项目使用另一个项目作为依赖项-您必须在build.gradle文件中将其配置为:不,它不会从命令行生成,与intellij给出的错误相同/p/projecta/src/main/java/projecta/projecta.java:2:错误:包projectb不存在import project.projectb;
// projectb/settings.gradle
rootProject.name = 'projectb'
tasks.register('run') {
dependsOn gradle.includedBuild('projectb').task(':run')
}
java {
disableAutoTargetJvm()
}