我们的项目一直有效,直到我尝试升级到 Gradle 5。它提示的第一件事是 /
对于多项目来说不是一个好的角色,例如bla/blub
无效,因此我们将其更改为 bla:blub
(即使错误消息显示 :
也无效)。但现在我们显然有了一个以前在 Gradle 4 中不存在的循环依赖:
Circular dependency between the following tasks:
:lap:server:classes
\--- :lap:server:compileJava
+--- :lap:server:compileKotlin
| \--- :lap:server:jar
| +--- :lap:server:classes (*)
| +--- :lap:server:compileKotlin (*)
| \--- :lap:server:inspectClassesForKotlinIC
| \--- :lap:server:classes (*)
\--- :lap:server:jar (*)
为什么会这样?
最佳答案
问题确实出在我们的 settings.gradle
中的 :
符号。现在我已将所有嵌套项目更改为 -
问题已解决。
更具体地说,在我们有类似的事情之前:
include 'common/server',
'someproject/server',
'someproject/common',
'someproject/search',
...
适用于 gradle 4。
然后在 Gradle 5 中我将其更改为
include 'common:server',
'someproject:server',
'someproject:common',
'someproject:search',
...
这导致了这个问题,大概是因为 someproject:common
依赖于 common:server
或类似的东西。
现在我已经将其更改为
include 'common-server'
project(':common-server').projectDir = file('common/server')
include 'someproject-server'
project(':someproject-server').projectDir = file('someproject/server')
include 'someproject-common'
project(':someproject-common').projectDir = file('someproject/common')
一切都像魅力一样。顺便说一句,循环依赖的错误在 Gradle 4 中也可以重现,只是我们仍然有 /
符号。
关于gradle - 升级到 Gradle 5 时的循环依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54231199/