Gradle JavaExec任务失败,并且以下任务之间具有循环依赖关系

时间:2018-12-19 21:26:19

标签: java gradle

我有一个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",
}

运行此任务时,出现“以下任务之间的循环依赖关系:”。因此很明显,我是在将classpath引回到自身。

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

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

我已经在这个圈子里转了几个小时了,真的可以使用一些帮助。

谢谢!

1 个答案:

答案 0 :(得分:1)

我发现了问题。我很愚蠢,忘记了我拥有这个:

compileJava.dependsOn generateJava

generatejava返回了我的代码生成任务,因此它确实是我自己创建的循环。