升级到Gradle 5时的循环依赖关系
我们的项目一直有效,直到我尝试升级到Gradle 5。它抱怨的第一件事是,升级到Gradle 5时的循环依赖关系,gradle,kotlin,circular-dependency,Gradle,Kotlin,Circular Dependency,我们的项目一直有效,直到我尝试升级到Gradle 5。它抱怨的第一件事是,/对于多个项目来说不是一个好字符,例如,bla/blub无效,因此我们将其更改为bla:blub(即使错误消息说:也无效)。但现在我们显然有一个循环依赖,这在Gradle 4之前是不存在的: Circular dependency between the following tasks: :lap:server:classes \--- :lap:server:compileJava +--- :lap:serv
/
对于多个项目来说不是一个好字符,例如,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 (*)
为什么会这样?问题确实出在
设置中的:
符号上。现在我已经将所有嵌套项目更改为-
,问题就解决了
更具体地说,在我们有类似于:
include 'common/server',
'someproject/server',
'someproject/common',
'someproject/search',
...
这对gradle 4起了作用
然后在Gradle 5我把它改成了
include 'common:server',
'someproject:server',
'someproject:common',
'someproject:search',
...
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')
这可能是因为someproject:common
依赖于common:server
或类似的东西
现在我把它改成了
include 'common:server',
'someproject:server',
'someproject:common',
'someproject:search',
...
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中也是可以重现的,只是在那里我们仍然有/
符号。对于那些偶然发现这个问题的人来说
见:
在多项目设置中,重复的“shortname”将使用活动扳手:
从上面的url:
myApp
- client
- common
- server
- common
即使它应该是两个不同的条目,“common”的重复(简称)也是问题/错误所在
最后我做了这个:(我的代码当然是不同的名字)(但想法是)
消除歧义
url还有其他一些想法
我在代码中看到的是,构建的jar看起来像这样:
common-1.0-SNAPSHOT.jar
所以这就是为什么我会说“啊,也许我对短名有着模棱两可的问题”。终于找到了github gradle链接。哇,很棒的侦探技巧。考虑到这一点:(我认为它是相同的麻烦区域)。但这个解决方案可能是最好的解决办法。