如何处理两个gradle插件的任务冲突? [英] Howto handle clash of tasks for two gradle plugins?
问题描述
我将gradle与两个插件com.jfrog.artifactory
和io.swagger.core.v3.swagger-gradle-plugin
一起使用.
I use gradle with the two plugins com.jfrog.artifactory
and io.swagger.core.v3.swagger-gradle-plugin
.
现在,我要按此处所述进行配置 https://github.com/swagger-api/swagger-core/tree/master/modules/swagger-gradle-plugin 的代码生成.但是看来resolve
任务已经从工件中定义了.如何直接使用swagger-plugin的方法?
Now I want to configure as described here https://github.com/swagger-api/swagger-core/tree/master/modules/swagger-gradle-plugin the generation of code. But it seems that the resolve
task has already been defined from artifactory. How do I adress the method of swagger-plugin directly?
这是在我的build.gradle中:
This is in my build.gradle:
resolve {
outputFileName = 'bananas'
outputFileName = 'PetStoreAPI'
outputFormat = 'JSON'
prettyPrint = 'TRUE'
classpath = sourceSets.main.runtimeClasspath
resourcePackages = ['io.test']
outputDir = file('test')
}
,这是错误消息:Could not set unknown property 'outputFileName' for object of type org.jfrog.gradle.plugin.artifactory.dsl.ResolverConfig.
推荐答案
Artifactory resolve
扩展名和Swagger插件resolve
任务(类型为import io.swagger.v3.plugins.gradle.tasks.ResolveTask
)之间确实存在冲突
There is indeed a clash between Artifactory resolve
extension and Swagger plugin resolve
tasks (of type import io.swagger.v3.plugins.gradle.tasks.ResolveTask
)
解决此问题的一种方法是使用完全限定的名称来显式引用swagger任务,如下所示:
One way to solve this is to reference the swagger tasks explicitly using fully-qualified name, as follows:
io.swagger.v3.plugins.gradle.tasks.ResolveTask swaggerResolve = tasks.getByName("resolve")
swaggerResolve.configure {
outputFileName = 'PetStoreAPI'
outputFormat = 'JSON'
prettyPrint = 'TRUE'
classpath = sourceSets.main.runtimeClasspath
resourcePackages = ['io.test']
outputDir = file('test')
}
编辑 更简单的解决方案,请参阅Lukas的评论
EDIT Simpler solution , see Lukas's comment
tasks.resolve {
outputFileName = 'PetStoreAPI'
// ....
}
这篇关于如何处理两个gradle插件的任务冲突?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!