当前位置: 首页 > 知识库问答 >
问题:

Gradle JavaExec任务失败,以下任务之间存在循环依赖关系

赵炯
2023-03-14

我有一个JavaExec任务,它运行一个Java类来生成文件。源代码生成器需要搜索CLASSPATH来找到它用来确定要生成什么的某些类。它需要当前项目的类在CLASSPATH中。

我有这个任务:

task showClasspath(type: JavaExec) {
    main = "com.my.codegen.Main"
    classpath = sourceSets.main.runtimeClasspath
    classpath += project(":CodeGen").sourceSets.main.runtimeClasspath
    args "generate",
}

当我运行此任务时,我得到“以下任务之间的循环依赖关系:”。很明显,我指的是类路径本身。

如果使用此任务,则项目类不在类路径中:

task showClasspath(type: JavaExec) {
    main = "com.my.codegen.Main"
    classpath += project(":CodeGen").sourceSets.main.runtimeClasspath
    args "generate",
}

在这个问题上,我已经兜了几个小时的圈子,真的需要一些帮助。

提前谢谢!

共有1个答案

彭坚壁
2023-03-14

我发现了问题。我太傻了,忘记了我有这个:

compileJava.dependsOn generateJava

generatejava引用了我的代码生成任务,因此它实际上是我自己创建的一个循环。

 类似资料:
  • 我花了5个多小时试图解决这个问题。有什么问题吗? 我补充道: 组织。格拉德尔。configureondemand=true 但问题依然存在 建筑gradle(模块:应用程序) 建造。gradle(项目:myproject) //顶级构建文件,您可以在其中添加所有子项目/模块通用的配置选项。

  • 因此,自从添加新的Room android架构库以来,这种情况已经开始发生。我在AppDatabase_Impl没有过期时遇到问题,我通过在注释中添加kapt来修复它: < li>Android Room持久性库和Kotlin < li >在Kotlin中实现房间持久性库 < in Kotlin中的房间持久性库实现(Gradle错误) 我怀疑其他错误是由于AS、Kotlin和Java 8造成的,所

  • 在Android Studio中,我得到以下错误:-任务执行失败':app:dexDebug '。 :app:compiledBugJava最新:app:preDexDebug:app:dexDebug意外顶级异常:com.android.dex。DexException:多个dex文件定义Landroid/support/annotation/AnimRes;在com.android.dx.me

  • 问题内容: 我刚读完Promises / A+规范,偶然发现了术语microtask和macrotask: 我以前从未听说过这些术语,现在我很好奇可能会有什么不同? 鉴于此WHATWG规范,我知道理论上我应该能够自己提取差异。但是我确信,专家的简短解释也可以使其他人受益。 问题答案: 事件循环的 一种解决 方法是从 宏任务队列中 恰好 处理 一个 任务在WHATWG规范中,该队列简称为 任务队列

  • 将gradle及其spring-boot插件(1.5.1)和第一个spirit插件一起使用会引发一个错误: b)如何从“启动重新打包”中删除“fsm”的依赖项? c)是否可以显示一个分级任务依赖关系图?(不是项目依赖关系)

  • 我希望它会按照一、二、三、四的顺序执行。但它是在并行模式下运行的。 以上代码的输出: