【问题标题】:Gradle JavaExec task fails with Circular dependency between the following tasksGradle JavaExec 任务因以下任务之间的循环依赖而失败
【发布时间】:2018-12-19 21:26:19
【问题描述】:

我有一个 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 中:

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

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

提前致谢!

【问题讨论】:

    标签: java gradle


    【解决方案1】:

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

    compileJava.dependsOn generateJava
    

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

    【讨论】:

    • 你是如何设置依赖的?
    猜你喜欢
    • 1970-01-01
    • 2017-10-29
    • 1970-01-01
    • 1970-01-01
    • 2016-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多