我有一个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",
}
我已经在这个圈子里转了几个小时了,真的可以使用一些帮助。
谢谢!
答案 0 :(得分:1)
我发现了问题。我很愚蠢,忘记了我拥有这个:
compileJava.dependsOn generateJava
generatejava返回了我的代码生成任务,因此它确实是我自己创建的循环。