【问题标题】:Using a plugin from separate Gradle Script使用来自单独 Gradle 脚本的插件
【发布时间】:2017-01-05 14:51:50
【问题描述】:

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

【问题讨论】:

    标签: gradle plugins build


    【解决方案1】:

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

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

    对于应用插件,我必须直接调用插件的主类。 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
    

    构建.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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多