Gradle 以编程方式为Jar任务添加依赖项

Gradle 以编程方式为Jar任务添加依赖项,gradle,gradle-plugin,Gradle,Gradle Plugin,我正在创建一个Gradle插件,它必须编译SwagggerCodeGen库(Java源代码树)的输出。在插件的apply()函数中,我定义了一个Swagger客户端源代码集和配置: project.sourceSets { swaggerClient { java { srcDirs new File(javaGenTask.outputDirectory, 'src/main/java').absolutePath

我正在创建一个Gradle插件,它必须编译SwagggerCodeGen库(Java源代码树)的输出。在插件的apply()函数中,我定义了一个Swagger客户端源代码集和配置:

    project.sourceSets {
        swaggerClient {
            java {
                srcDirs new File(javaGenTask.outputDirectory, 'src/main/java').absolutePath
            }
        }
    }

    project.configurations {
        swaggerClient
    }
//t instanceof List<String>, with entries in dependency markup such as:
//io.github.robwin:swagger2markup:0.9.1

    project.configurations.getByName('swaggerClient') { Configuration conf ->
        conf.dependencies.addAll t.collect {String s -> project.dependencies.create s}
    }
然后,我分析生成的build.gradle文件的依赖项,获取字符串列表(带有配置)并将它们添加到配置中:

    project.sourceSets {
        swaggerClient {
            java {
                srcDirs new File(javaGenTask.outputDirectory, 'src/main/java').absolutePath
            }
        }
    }

    project.configurations {
        swaggerClient
    }
//t instanceof List<String>, with entries in dependency markup such as:
//io.github.robwin:swagger2markup:0.9.1

    project.configurations.getByName('swaggerClient') { Configuration conf ->
        conf.dependencies.addAll t.collect {String s -> project.dependencies.create s}
    }
javaGenTask是生成Java源代码的任务


运行任务时,没有声明的依赖项,导致编译器“package Not Existence”(包不存在)错误(导致编译失败)。

。配置名称+“Compile”需要更改

project.configurations.getByName('swaggerClientCompile'){Configuration->
conf.dependencies.addAll t.collect{String s->project.dependencies.create s}
}


注意“swaggerClient”与“swaggerClientCompile”之间的区别,回答我自己的问题。配置名称+“Compile”需要更改

project.configurations.getByName('swaggerClientCompile'){Configuration->
conf.dependencies.addAll t.collect{String s->project.dependencies.create s}
}

注意“swaggerClient”和“swaggerClientCompile”