gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 04:35:14 24 4
gpt4 key购买 nike

我正在创建一个Gradle插件,该插件必须编译SwaggerCodegen lib(Java源树)的输出。在插件的apply()函数中,我定义了swaggerClient源集和配置:

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

project.configurations {
swaggerClient
}

然后,我解析生成的build.gradle文件的依赖关系,获取字符串列表(带有配置)并将其添加到配置中:
//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}
}

之后,我定义一个Jar类型的任务:
    project.task('Koos',
description: 'Generate a java jar using Swagger markup',
type: Jar,
dependsOn: javaGenTask) {
from project.sourceSets.asMap['swaggerClient'].output
}

javaGenTask是生成Java源代码的任务。

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

最佳答案

回答我自己。配置名称+“编译”需要更改
project.configurations.getByName('swaggerClientCompile') { Configuration conf ->
conf.dependencies.addAll t.collect {String s -> project.dependencies.create s}
}

注意'swaggerClient'与'swaggerClientCompile'

关于gradle - 以编程方式为Jar任务添加依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34586832/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com