使用单独的Gradle脚本中的插件

时间:2017-01-05 14:51:50

标签: gradle plugins build

我一直在使用插件来生成一些文档。当我将代码放在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

1 个答案:

答案 0 :(得分:0)

我自己想出一个解决方案,对于遇到这个问题的任何人都可能有用。

我创建了一个Swagger.gradle文件,其中包含buildscript和build.gradle,然后在插件中调用。

对于Apply插件,我必须直接调用插件的主类。 Swagger.gradle

WebView

的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.gradleplugin.GradleSwaggerPlugin

相信此博客:http://mrhaki.blogspot.co.uk/2015/10/gradle-goodness-apply-external-script.html