Gradle 教程:第二部分,JAVA PROJECTS【翻译】

 

原文地址:http://rominirani.com/2014/07/28/gradle-tutorial-part-2-java-projects/

在这部分的教学中,我们会学习如何使用Gradle去编译,构建,测试你的JAVA项目。我们将会把关注的焦点放在Gradle的内部机制上,而不是java代码,所以我将使用非常简单的java工程来帮助我们理解Gradle的概念。

在阅读本文前,请确保您已经阅读了第一部分

Gradle:工程(Project),任务(Tasks) and 插件(Plugin)

我们先来炒个回锅肉,回想一下前面一节我们所讲的一些东西,并且在加一些本节所需要的新知识。

总的来说,gradle编译进程在开始编译的时候,总是会去寻找build.gradle文件,build.gradle是Gradle的核心文件,该文件包含了Gradle需要执行的各种任务task,和指令去指导Gradle去做的事情。任务task可以理解为编译,测试,编译jar,部署等事件,只不过在Gradle里面这些事件可以被算便打乱,而在一般的IDE里面,却只能是编译 –》构建 –-》部署 – 》发布的过程。所以Gradle因为任务的概念,使得程序的构建可以多样化,一次执行发布多个包这样非常灵活的控制。

但是我们也没有必要手动的为一次构建过程详细的指定每一个任务,因为在Gradle中有一个叫做Plugin(插件)的东西帮我们做了这些事情。通过使用插件,我们可以非常简单的指定任务(但是这里需要编写插件所提供的约定)。

那么插件是什么意思呢?这里的插件和我们使用软件时增加插件的那个意思基本一致:一个插件(Plugin)就是我们可以用来增加Gradle的能力的约定机制。按照Gradle的约定机制所定义的插件,可以让Gradle知道如何执行任务。

本节我们不打算关注如何写一个插件。我们只是使用一些非常厉害强大的Gradle 插件来帮助我们做一些事情。这些插件已经提供了一些我们可以直接使用的任务。

不着急额,来与我多碰一杯,事情就能够一帆风顺了.

JAVA plugin

让我们先从对于java程序猿来说最终要的插件开始说起:java plugin 。这个插件为项目已经定义如下的能力:

1.编译

2.测试

3.打包

逻辑上来说,这估计就是我们java项目所需要的一切功能了。其中打包通常意义就是打包一个jar文件。

所有的你需要在项目中使用的插件都需要增加在build.gradle文件中形式如下:

apply plugin:<plugin-name>

现在,我们需要使用java插件,所以我们在build.gradle中增加:

apply plugin: “java”

为了更好的理解上面这句话是什么意思,我们来举个实例。

在本地电脑上创建一个文件夹:example2 ,在example2文件家里创建build.gradle,并在文件中加上

apply plugin: “java”

如图

然后再cmd里面执行

gradle tasks

应该就会看到如下结果

可以看到其中就有java plugin为我们提供的各种任务,比如:

build(编译)

clean(清除)

assemble(集成)

这些任务甚至可能会依赖其他的任务,具体信息可以参考官方参考依赖图

使用java plugin编译的简单的JAVA 项目

当你成功执行上面的代码之后,你再次打开example2文件,会看到下面会多生产一些文件,现在的文件夹下:

虽然java plugin已经提供了 build,clean,assemble等任务,我们要如何调用呢?当然出了CMD的方式,还可以集成在build.gradle文件中

Gradle 梳理 - 插件的更多相关文章

  1. [原创]使用Gradle的插件EnIDE build的时候,输出的中文总是乱码。

    使用Gradle的插件EnIDE build的时候,输出的中文总是乱码.解决办法:在EnIDE的设置里面,设置JVM options GRADLE_OPTS 为:-Dfile.encoding=UTF ...

  2. AS 自定义 Gradle plugin 插件 案例 MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  3. gradle ssh 插件

    org.hidetake.ssh Gradle SSH Plugin is a Gradle plugin which provides remote command execution and fi ...

  4. com.android.tools.build:gradle:X.XX.XX:gradle.jar 插件无法下载问题

    在使用Android Studio 这个IDE时,出现com.android.tools.build:gradle:X.XX.XX:gradle.jar 插件无法下载问题 可能的原因就是网速不好或者依 ...

  5. Android gradle 自定义插件

    Gradle 的插件有三种打包方式: 构建脚本:插件逻辑写在 build.gradle 中,适用于逻辑简单的任务,但是该方式实现的插件在该构建脚本之外是不可见的,只能用于当前脚本. buildSrc项 ...

  6. gradle入门(1-7)eclipse和gradle集成插件的安装和使用

    一.安装gradle插件:buildship 1.安装插件 gradle默认的本地缓存库在c盘user目录下的.gradle文件夹下,安装好gradle后,可以添加环境变量GRADLE_USER_HO ...

  7. gradle 自定义插件 下载配置文件

    1.新建Gradle项目: 2.建立src/main/groovy目录,并添加如下代码: ConfigPlugin.groovy package com.wemall.config import or ...

  8. java基础---->自定义gradle的插件

    这里面简单的介绍一下gradle插件的编写. 自定义gradle插件 我们编写的gradle脚本一般是放在build.gradle文件中.所以首先创建一下build.gradle文件,下面的例子都是在 ...

  9. Gradle 梳理:安装、入门使用方法

    Gradle 教程:第一部分,安装[翻译]   原文地址:http://rominirani.com/2014/07/28/gradle-tutorial-part-1-installation-se ...

随机推荐

  1. 设计模式(C#)——11代理模式

    推荐阅读:  我的CSDN  我的博客园  QQ群:704621321 前言        在软件开发过程中,当无法直接访问某个对象或访问某个对象存在困难时,我们希望可以通过一个中介来间接访问,这就是 ...

  2. (七)分布式通信----Netty实现NIO通信

    目录 1. 消息监听器 2. 指令执行器 3. 消息发送器 4. 客户端工厂 5. 序列化工具 6. 通信主机 项目文件结构图 通信主机: 1. 消息监听器(黄色框) 这部分由 Netty 实现,Ne ...

  3. Api接口文档管理工具,你知道哪些呢?

    上周看到有人在我的Github开源项目中提了个issue,说是否考虑接入swagger.那今天我就用swagger与其他接口文档工具做对比,同时说说Api接口文档工具的那点事.如今,在前后端分离开发的 ...

  4. Docker容器技术的核心

    容器技术的核心 所谓容器,其实是由Linux Namespace.Linux Cgroups和rootfs三种技术构建出来的进程的隔离环境 对于Docker项目来说,其实最核心就是为待创建的用户进程: ...

  5. NLP(十一) 提取文本摘要

    gensim.summarization库的函数 gensim.summarization.summarize(text, ratio=0.2, word_count=None, split=Fals ...

  6. CF 462 C. A Twisty Movement 分段想 线段树 或 dp

    题意 有一个只包含1和2的序列,试翻转一个区间,使得结果中非连续非递减数列最长. 思路 一. 作出1的前缀计数和为cnt1,2的后缀计数和为cnt2, 由于要找出[1,1,1][2,2,2][1,1, ...

  7. Codeforces Round #379 (Div. 2) E. Anton and Tree 缩点 树的直径

    传送门 题意: 这道题说的是在一颗有两种颜色的树上,每操作一个节点,可以改变这个节点颜色和相邻同色节点的颜色.问最少操作次数,使得树上颜色相同. 思路: 先缩点,把相同的颜色的相邻节点缩在一起.再求出 ...

  8. codeforces 821 D. Okabe and City(最短路)

    题目链接:http://codeforces.com/contest/821/problem/D 题意:n*m地图,有k个位置是点亮的,有4个移动方向,每次可以移动到相邻的点亮位置,每次站在初始被点亮 ...

  9. 【github】论怎么去写一个高大上的ReadMe

    前言 以前我时常觉得,自己写的ReadMe很单调乏味,但后来仔细研究一下后,发现有很多方式可以让ReadMe在简洁的基础上变得好看些,所以在这里和大家分享,如果大家有更好的想法,也非常欢迎在评论区留言 ...

  10. Java ArrayList源码分析(有助于理解数据结构)

    arraylist源码分析 1.数组介绍 数组是数据结构中很基本的结构,很多编程语言都内置数组,类似于数据结构中的线性表 在java中当创建数组时会在内存中划分出一块连续的内存,然后当有数据进入的时候 ...