Gradle如何在包含的公共构建脚本中使用插件

时间:2017-07-06 18:07:43

标签: gradle plugins

项目A:

   apply from : 'common.gradle'

common.gradle

plugins {
    id 'com.eriwen.gradle.js' version '2.14.1'
}

apply plugin: 'js'

import com.eriwen.gradle.js.tasks.MinifyJsTask;

task minify(type: MinifyJsTask) {
   ...
}

错误

Only Project build scripts can contain plugins {} blocks

如果插件块移动到项目A,

错误

unable to resolve class com.eriwen.gradle.js.tasks.MinifyJsTask

如何在包含的构建脚本(称为脚本插件)中使用插件(来自公共责任)?

2 个答案:

答案 0 :(得分:3)

这是一种方法。 (我使用this page作为资源,但不确定它是否仍然准确。)使用Gradle 4.0:

鉴于build.gradle

apply from: 'common.gradle'

这里是common.gradle

buildscript {
  repositories {
    maven {
      url "https://plugins.gradle.org/m2/"
    }
  }
  dependencies {
    classpath "com.eriwen:gradle-js-plugin:2.14.1"
  }
}

apply plugin: com.eriwen.gradle.js.JsPlugin 

task minify(type: com.eriwen.gradle.js.tasks.MinifyJsTask) {
    // ...
}

答案 1 :(得分:0)

使用Gradle的Kotlin DSL时,Michael解释的方法不允许使用插件提供的类型安全模型访问器。相反,您可以将常见的构建脚本放入buildSrc目录结构中。这允许使用plugins{}块,并为您提供类型安全的Kotlin DSL的所有优点。 https://docs.gradle.org/current/userguide/organizing_gradle_projects.html#sec:build_sources