博客逐步迁移至 极客兔兔的小站html
上一篇随笔介绍了如何使用Gradle内建任务,介绍了自定义Gradle任务类的三种方法(build文件,buildSrc文件夹、新建groovy项目),一个任务是一个原子操做,即不可分割的。项目开发过程当中,咱们每每须要按照必定顺序执行多个任务以完成某个特定功能(例如build、clean),多个任务及其属性、配置的集合称之为一个plugin
java
Gradle提供了2种类型的插件,脚本插件
(script plugin)和二进制插件
(binary plugin)。Gradle拥有十分丰富的插件,仅掌握其中几个就可以极大地提高工做效率,这篇文章将介绍Gradle的2种插件的导入方法及项目开发中极为经常使用的java plugin
app
若有错误,请不吝指出,很是感谢;若是本文对你有帮助,右下角点个推荐吧~ide
一个脚本插件能够视做一个Gradle文件,能够在其余文件中导入,至关于多个类的模块化,下面是个很是简单的例子模块化
// ~/Test/helloplugin.gradle task helloTask << { println 'I Am Called !' }
// ~/Test/build.gradle apply from: 'helloplugin.gradle' task mainTask << { println 'I am ' + name }
执行结果以下 C:\Users\gzd\Desktop\Test>gradle hT mT :helloTask I Am Called ! :mainTask I am mainTask
脚本若是若是通过编译,那么就能够称之为二进制插件,例如上一篇博客新建groovy项目编译造成的 HelloTask-1.0.jar,二进制插件能够理解为提供接口的类的集合,二进制插件可复用性更强测试
// 导入 java插件 // apply plugin: '<pluginid>' apply plugin: 'java' // 若是已经使用import导入了相关类 // 可以使用 apply <Class> 例如 apply HelloTask
Gradle 内置的插件包含:gradle
(1) 编译、测试插件(Java、Groovy、Scala、War 等)
(2) 代码分析插件(Checkstyle、FindBugs、Sonar 等)
(3) IDE插件(Eclipse、IDEA等)ui
若是引入第三方插件,那么就须要配置依赖路径了,例子可参考Gradle之定制任务最后一部分this
buildscript { repositories { ... } dependencies { ... } }
Java plugin是Gradle核心API的一部分,Java plugin插件提供了一系列的任务支持构建、编译、测试Java项目。插件
// ~/Test/build.gradle // 导入java插件 // jcenter()是一个插件仓库,导入的插件将会在仓库中寻找并下载 buildscript { repositories { jcenter() } } apply plugin: 'java'
在Test/下(即build.gradle)所在的目录执行 gradle tasks --all 将会列出java插件支持的全部任务 例如咱们所熟悉的 gradle build、gradle clean C:\Users\gzd\Desktop\Test>gradle tasks --all :tasks ... Build tasks ----------- build - Assembles and tests this project. clean - Deletes the build directory. Rules ----- Pattern: clean<TaskName> Pattern: build<ConfigurationName> Pattern: upload<ConfigurationName>
执行gradle dJPC,将打印java插件的默认配置 C:\Users\gzd\Desktop\Test>gradle dJPC :dislpayJavaPluginConvention Lib Dir: C:\Users\gzd\Desktop\Test\build\libs Lib Dir Name:libs Sources Code Dir[source set 'main', source set 'test'] Production Code Dir[C:\Users\gzd\Desktop\Test\src\main\java]
// 咱们能够在build.gradle中覆盖其默认配置 libsDir = 'buildFolder' libsDirName = 'libfolder' sourceSets { main { java { srcDir 'src/maincode/java' } resources { srcDir 'src/maincode/resources' } } test { // 省略测试配置... } }