【发布时间】:2018-02-16 12:23:28
【问题描述】:
我有一个多模块 gradle 项目:
subprojects {
apply plugin: 'java-library'
}
project(':core') {
dependencies {
compile project(':module:mod-a')
}
}
project(':module:mod-a') {
dependencies {
compile project(':core')
}
}
project(':module:mod-b') {
dependencies {
compile project(':core')
}
}
当然这会导致循环编译依赖:
* What went wrong:
Circular dependency between the following tasks:
:core:compileJava
+--- :core:compileJava (*)
\--- :module:mod-a:compileJava
+--- :core:compileJava (*)
\--- :module:mod-a:compileJava (*)
困扰我的是,即使我将 compile 依赖项从 :core 更改为 :module:mod-a 到 runtime 依赖项,仍然无法编译该项目:
* What went wrong:
Circular dependency between the following tasks:
:module:mod-a:compileJava
\--- :module:mod-a:compileJava (*)
我不明白为什么会出现问题。 :core 确实只在运行时需要该模块,因此可以先编译。之后可以使用核心编译模块。此外,:core 不再是来自 Gradle 的错误消息的一部分。所以 Gradle 似乎“看到”了它只是一个运行时依赖。
问题出在哪里,如何解决?
【问题讨论】:
标签: gradle compilation dependencies runtime circular-dependency