我正在尝试使用具有以下项目结构的Gradle创建一个多项目构建:
Root project 'optget'
+--- Project ':og-annotation'
+--- Project ':og-apps'
| +--- Project ':og-apps:ast'
| +--- Project ':og-apps:ref'
| \--- Project ':og-apps:run'
\--- Project ':og-processors'
+--- Project ':og-processors:ast'
+--- Project ':og-processors:ref'
\--- Project ':og-processors:run'
根build.gradle
为所有项目设置repositories
。
og-annotation/build.gradle
文件完全没有依赖性,仅应用java-plugin
。
og-processors/ast/build.gradle
文件具有一些依赖性,其中包括og-annotation
项目:
plugins {
id 'java-library'
}
dependencies {
annotationProcessor 'org.projectlombok:lombok:1.14.8'
implementation project(':og-annotation') // <- using the annotation
implementation 'com.sun:tools:1.7.0.13'
implementation 'org.projectlombok:lombok:1.14.8'
}
对于我来说,最有趣和令人困惑的文件是og-apps/ast/build.gradle
(og-apps
目录保留了使用og-annotation
和og-processors
模块的示例项目):
plugins {
id 'java'
}
dependencies {
compile project(':og-annotation')
annotationProcessor project(':og-processors:ast')
}
因此,当我尝试构建项目时,出现以下错误:
Circular dependency between the following tasks:
:og-apps:ast:classes
\--- :og-apps:ast:compileJava
\--- :og-apps:ast:jar
\--- :og-apps:ast:classes (*)
(*) - details omitted (listed previously)
问题:
对于任何互动,我将不胜感激:)