博客逐步迁移至 极客兔兔的小站

    上一篇随笔介绍了如何使用Gradle内建任务,介绍了自定义Gradle任务类的三种方法(build文件,buildSrc文件夹、新建groovy项目),一个任务是一个原子操作,即不可分割的。项目开发过程中,我们往往需要按照一定顺序执行多个任务以完成某个特定功能(例如build、clean),多个任务及其属性、配置的集合称之为一个plugin

    Gradle提供了2种类型的插件,脚本插件(script plugin)和二进制插件(binary plugin)。Gradle拥有十分丰富的插件,仅掌握其中几个就能够极大地提升工作效率,这篇文章将介绍Gradle的2种插件的导入方法及项目开发中极为常用的java plugin

    如有错误,请不吝指出,非常感谢;如果本文对你有帮助,右下角点个推荐吧~

1.导入插件

1.1 脚本插件(script plugin)

    一个脚本插件可以视作一个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

1.2 二进制插件(binary plugin)

    脚本如果如果经过编译,那么就可以称之为二进制插件,例如上一篇博客新建groovy项目编译形成的 HelloTask-1.0.jar,二进制插件可以理解为提供接口的类的集合,二进制插件可复用性更强

// 导入 java插件
// apply plugin: '<pluginid>'
apply plugin: 'java' // 如果已经使用import导入了相关类
// 可使用 apply <Class> 例如 apply HelloTask
  • java是Gradle的核心插件,是内置的,内置插件不需要配置依赖路径
  • Gradle 内置的插件包含:

(1) 编译、测试插件(Java、Groovy、Scala、War 等)

(2) 代码分析插件(Checkstyle、FindBugs、Sonar 等)

(3) IDE插件(Eclipse、IDEA等)

  • 如果引入第三方插件,那么就需要配置依赖路径了,例子可参考Gradle之定制任务最后一部分
buildscript {
repositories { ... }
dependencies { ... }
}

2. Java plugin 使用方法

    Java plugin是Gradle核心API的一部分,Java plugin插件提供了一系列的任务支持构建、编译、测试Java项目。

2.1 导入java plugin

// ~/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>

2.2 查看默认配置

执行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]
  • 这个任务能够让我们知道java插件的默认配置,更完整的信息可以查看Gradle官方文档
  • 例如Production Code Dir,我们只需要将代码写在 src/main/java目录下,执行gradle build,编译时Gradle将自动寻找该目录下的java代码进行编译,这和Eclipse自动生成的目录十分地相似,在这里我们只是手动做了IDE做的事情

2.3 覆盖默认配置

// 我们可以在build.gradle中覆盖其默认配置
libsDir = 'buildFolder'
libsDirName = 'libfolder'
sourceSets {
main {
java {
srcDir 'src/maincode/java'
}
resources {
srcDir 'src/maincode/resources'
}
}
test {
// 省略测试配置...
}
}
  • 上述代码就将java插件默认的路径更改了,有时我们复用别人的项目时,目录结构不一致,此时通过更改java插件默认配置能够节省大量的时间。
  • 关于java plugin 更多完整的属性和用法可以查看官方文档

3.写在最后

Java Gradle入门指南之插件管理(类型、导入及java plugin使用)的更多相关文章

  1. Java Gradle入门指南之依赖管理(添加依赖、仓库、版本冲突)

        开发任何软件,如何管理依赖是一道绕不过去的坎,软件开发过程中,我们往往会使用这样那样的第三方库,这个时候,一个好的依赖管理就显得尤为重要了.作为一个自动构建工作,Gradle对依赖管理有着很好 ...

  2. Java Gradle入门指南之内建与定制任务类(buildSrc、Groovy等)

        上一篇随笔介绍了Gradle的安装与任务管理,这篇着重介绍Gradle的内建任务(in-built tasks)与自定义任务(custom tasks),借助Gradle提供的众多内建任务类型 ...

  3. Java Gradle入门指南之简介、安装与任务管理

        这是一篇Java Gradle入门级的随笔,主要介绍Gradle的安装与基本语法,这些内容是理解和创建build.gradle的基础,关于Gradle各种插件的使用将会在其他随笔中介绍.    ...

  4. Java Gradle入门指南之gretty插件(安装、命令与核心特性)

        Java Web应用开发时常使用Gradle来进行项目管理,可以十分便利地解决包依赖等问题.war插件的出现,让项目部署成为一个复制粘贴的过程,那有没有办法让Java web应用的部署,就像w ...

  5. Gradle入门(3):构建第一个Java项目

    Gradle插件通过引入特定领域的约定和任务来构建你的项目.Java插件是Gradle自身装载的一个插件.Java插件提供的基本功能远比源代码编译和打包多.它为你的项目建立了一个标准的项目布局,并确保 ...

  6. java RMI入门指南

    感觉这篇文章不错,直接转了 RMI全称是Remote Method Invocation-远程方法调用,Java RMI在JDK1.1中实现的,其威力就体如今它强大的开发分布式网络应用的能力上,是纯J ...

  7. java SE 入门之八大内置基本类型(第二篇)

    本文采用eclipse 工具演示,如果您对eclipse 工具不了解,请先学习下 eclipse 工具的使用,这个里面只是简单的介绍下输出和注释: 安装完成eclipse 以后,双击进入 后一次点击 ...

  8. Java RMI 入门指南

    开通博客也有好些天了,一直没有时间静下心来写博文,今天我就把两年前整理的一篇关于JAVA RMI入门级文章贴出来,供有这方面需要的同学们参考学习. RMI 相关知识 RMI全称是Remote Meth ...

  9. Java工程师学习指南 入门篇

    Java工程师学习指南 入门篇 最近有很多小伙伴来问我,Java小白如何入门,如何安排学习路线,每一步应该怎么走比较好.原本我以为之前的几篇文章已经可以解决大家的问题了,其实不然,因为我之前写的文章都 ...

随机推荐

  1. 【CTO讲堂】以API为核心的移动应用云大发展时代

    摘要:CTO线上讲堂5月20日正式登场,CTO俱乐部首期邀请到APICloud联合创始人兼CTO邹达与C粉之家微信群友一起聊聊如何快速玩转App开发,分享技术人的职场成长. 为了帮助IT从业者职业之路 ...

  2. 使用DataConnectionDialog在运行时设置数据源连接字符串

    介绍: DataConnectionDialog 类: 打开“数据连接”对话框,获取用户选择的数据连接信息. 命名空间为:Microsoft.Data.ConnectionUI 所在程序集:Micro ...

  3. MySQL远程登录设置

    可以在一台机器上访问另一台机器的MySQL,但是需要一些设置. 进入MySQL后,输入以下命令: GRANT ALL PRIVILEGES ON *.* TO 'tigase'@'%' IDENTIF ...

  4. Hibernate---detached entity passed to persist一个解决方法

    1.查看id生成策略,2.查看是否是手动设置的id :3.查看实体对象映射配置是否正确. 例如: public Emplopes(String name, char gender) { super(n ...

  5. 2015-2016 ACM-ICPC Nordic Collegiate Programming Contest ---E题Entertainment Box(有点变化的贪心)

    提交链接 http://codeforces.com/gym/100781/submit Description: Ada, Bertrand and Charles often argue over ...

  6. 快速熟悉Velocity

    果然公司用的东西跟平时学的东西不太一样,我们公司前台页面并不是我们熟悉的.html或者.jsp文件,而是很多人不知道的 .vm文件,其实只要我们理解了jsp文件,vm文件也就是一些基本语法不同而已. ...

  7. 商业银行在CNAPS体系中对各种交易的处理

    简单来讲,商业银行在CNAPS体系中, 一)行内的交易 由各个银行的行内业务系统来自行解决信息流和资金流问题: 二)跨行的交易分渠道处理 柜台和网银等渠道,商业银行直接直连央行的大小额以及超级网银来解 ...

  8. ASP.NET MVC Model绑定的简单应用

    Model绑定是 MVC 框架根据 HTTP 请求数据创建 .NET 对象的一个过程. 一.简单类型 1.单一值

  9. CSS3颜色特征温故

    网页是色彩的表现原理:显示器是由一个个像素构成,利用电子束来表现色彩.像素把光的三原色:红色(R).绿色(G).蓝色(B)组合成的色彩按照科学原理表现出来.一个像素包含8位元色彩的信息量,又从0 ~ ...

  10. .net学习之路——调试程序

    没有人的程序是完美的,这条规则对所有的程序员来说也成立.没有人能在第一次就写出完美的程序来. 调试工具分为两类,一类是被动的,你等待它们告诉你问题:还有一类是主动的,允许你在程序运行时深入观察,并在逐 ...