gradle - 使用来自单独的Gradle脚本的插件

标签 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

最佳答案

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

我创建了一个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/

相关文章:

gradle - 带有gradle和log4j2的Spring Boot未记录到文件

vim - 有没有一种好方法可以为单个文件禁用 vim 中的所有插件?

build - QBS 中的构建后步骤

eclipse - “构建工作空间”遇到错误

java - 如何在 IntelliJ 中附加 gradle-api 源

android-studio - 将新的LibGDX项目导入Android Studio,卡在Gradle Build上

javascript - jQuery 插件 - 高亮文本

java - Eclipse Indigo 安装 m2e-wtp 插件时出现问题

java - 升级操作系统后使我的ANT版本无法正常工作的问题

android - Mapbox 4 到 Mapbox 5 错误