首页 > 解决方案 > Gradle 在使用 annotationProcessor 时引发错误:以下任务之间的循环依赖关系

问题描述

我正在尝试使用 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.gradlerepositories

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-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)

问题:

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

标签: javagradleannotationsbuild.gradle

解决方案


推荐阅读