我一直在使用插件来生成一些文档。当我将其代码放在每个包的build.gradle内时,它可以完美地工作。
但是,与其将这个插件放置在多个build.gradle文件中,我不希望将其放置在单独的gradle脚本中,以使所有内容更加集中。
但是,当我这样做时,我得到一个错误:
Plugin with id 'com.benjaminsproule.swagger' not found.
尽管代码与build.gradle文件中的代码完全相同。
这是导入插件并使用它的代码:
buildscript {
repositories {
maven {url "http://jcenter.bintray.com"}
}
dependencies {
classpath 'com.benjaminsproule:swagger-gradle-plugin:0.0.8'
}
}
apply plugin: 'com.benjaminsproule.swagger'
swagger {
apiSource {
springmvc = false
locations = ['package1']
info {
title = 'Package 1'
version = 'v1'
description = 'Documentation for Package 1'
}
swaggerDirectory = "${project.rootDir}/reports/Package1"
}
apiSource {
springmvc = false
locations = ['package2']
info {
title = 'Package 2'
version = 'v1'
description = 'Documentation for Package 2'
}
swaggerDirectory = "${project.rootDir}/reports/Package2"
}
}
所以我想将其全部从build.gradle移到名为swagger.gradle的文件中,这可能吗?
我还使用以下命令运行插件:
gradle swagger
最佳答案
我自己想出了一个解决方案,对于遇到此问题的任何其他人可能都有用。
我创建了一个Swagger.gradle文件,其中包含buildscript和build.gradle,然后在插件中调用。
对于Apply插件,我必须直接调用该插件的主类。
Swagger.gradle
buildscript {
repositories {
maven {url "http://jcenter.bintray.com"}
}
dependencies {
classpath 'com.benjaminsproule:swagger-gradle-plugin:0.0.8'
}
}
apply plugin: com.benjaminsproule.swagger.gradleplugin.GradleSwaggerPlugin
Build.gradle
apply from: "/scripts/Swagger.gradle"
swagger {
apiSource {
springmvc = false
locations = ['package1']
info {
title = 'Package 1'
version = 'v1'
description = 'Documentation for Package 1'
}
swaggerDirectory = "${project.rootDir}/reports/Package1"
}
apiSource {
springmvc = false
locations = ['package2']
info {
title = 'Package 2'
version = 'v1'
description = 'Documentation for Package 2'
}
swaggerDirectory = "${project.rootDir}/reports/Package2"
}
}
归功于此博客:http://mrhaki.blogspot.co.uk/2015/10/gradle-goodness-apply-external-script.html
关于gradle - 使用来自单独的Gradle脚本的插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41487978/