使用注解处理器时,Gradle会引发错误:以下任务之间的循环依赖

时间:2018-09-26 10:00:19

标签: java gradle annotations build.gradle

我正在尝试使用具有以下项目结构的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.gradleog-apps目录保留了使用og-annotationog-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)

问题:

  • 哪里有循环依赖项?
  • 如何正确构建项目?
  • 结构可能错了吗?

对于任何互动,我将不胜感激:)

0 个答案:

没有答案