文档章节

安装配置Gradle,以及使用

唐家V
 唐家V
发布于 2015/08/19 16:03
字数 1405
阅读 335
收藏 0
点赞 0
评论 0

一、介绍

关于Gradle是什么东西,这里也不用介绍了,类似于Maven,不过自己Maven用的也不深,无法对比区别有多大,但是看到Gradle的官网上面的User Guide,介绍的篇幅很大,功能估计很多,想要深入使用也要花很多时间。

https://docs.gradle.org/current/userguide/userguide.html

二、安装:

其实类似Maven的安装方式,先下载,后解压。

下载地址:http://gradle.org/gradle-download/

解压后,在  我的电脑 -> 属性 -> 高级系统设置 -> 环境变量 ,添加一个系统变量GRADLE_HOME,变量值为解压缩路径,如:E:\eclipse\gradle-2.6

在path中添加 %GRADLE_HOME%\bin ,完成安装。

win+r,后cmd,输入gradle -v,

安装完毕。

三、Gradle一些概念

1、在Gradle中,有两个基本概念:项目任务。请看以下详解:

  • 项目是指我们的构建产物(比如Jar包)或实施产物(将应用程序部署到生产环境)。一个项目包含一个或多个任务。

  • 任务是指不可分的最小工作单元,执行构建工作(比如编译项目或执行测试)。build,test之类的命令?

那么,这些概念和Gradle的构建又有什么联系呢?好,每一次Gradle的构建都包含一个或多个项目

下面这张图展示了上面所谈到的这些概念的关系。

2、3个配置文件

我们能够使用以下配置文件对Gradle的构建进行配置:

  • Gradle构建脚本(build.gradle)指定了一个项目和它的任务。

  • Gradle属性文件(gradle.properties)用来配置构建属性。

  • Gradle设置文件(gradle.settings)对于只有一个项目的构建而言是可选的,如果我们的构建中包含多于一个项目,那么它就是必须的,因为它描述了哪一个项目参与构建。每一个多项目的构建都必须在项目结构的根目录中加入一个设置文件。

3、相关插件

有用的特性都由插件提供。插件能够做到:添加新任务、为新加入的任务提供默认配置(默认配置会在项目中注入新的约定)、加入新的属性,可以覆盖插件的默认配置属性、为项目加入新的依赖

四、使用

1、我们可以手动建立一个项目

比如在 E:\Gradle\workspace\gradle_demo ,项目名称hello_gradle,项目中新建一个文件build.gradle,目前项目就只有这个文件。


在build.gradle文件中添加改行,加入 java 插件,

apply plugin: 'java'

加入插件后,可以方便我们对项目进行构建;

2、手动建立项目工程文件:

src\main\java

src\main\resources 

src\test\java 

src\test\resources

执行gradle build 构建。

可以看到,在build文件中,libs生成了xxx.jar 文件。

3、添加java文件并测试。

在src\main\java 中,添加包com.demo,并添加HelloWorld.java文件

package com.demo;

public class HelloWorld {
 
    public static void main(String[] args) {
        System.out.println("Hello World!");
    }
}

执行gradle assemble ,编译打包项目,使用上面提到的gradle build ,同样可以编译打包项目,区别在于:

Java插件在我们的构建中加入了很多任务,我们这篇教程涉及到的任务如下:

  • assemble任务会编译程序中的源代码,并打包生成Jar文件,这个任务不执行单元测试。

  • build任务会执行一个完整的项目构建。

  • clean任务会删除构建目录。

  • compileJava任务会编译程序中的源代码。

上面是参考  http://blog.jobbole.com/72558/ 博文。

现在进入build->libs 执行 java -jar hello_gradle.jar 提示

问题出在,我们没有在manifest文件中配置Jar文件的主类。解决这个问题的关键

上面已经说了,在build.gradle文件中加入如下代码

jar {
    manifest {
        attributes 'Main-Class': 'com.demo.HelloWorld'
    }
}

然后先执行 gradle clean ,删除构建目录。

在执行 gradle build ,构建项目

成功打印出。

4、添加依赖,这里使用Maven central仓库

1)、在build.gradle文件中,添加下面代码

repositories {
    mavenCentral()
}

2)、然后声明依赖:

build.gradle文件中,我们声明了两个依赖:

dependencies {
    compile 'log4j:log4j:1.2.17'
    testCompile 'junit:junit:4.11'
}

3)、编写代码

首先,src/main/java/com/demo目录下新建一个MessageService类并加以实现,代码如下:

package com.demo;
 
public class MessageService {
 
    public String getMessage() {
        return "Hello World!";
    }
}

其次,src/main/test/com/demo目录下新建一个MessageServiceTest类,编写单元测试,代码如下:

package com.demo;
 
import org.junit.Before;
import org.junit.Test;
 
import static org.junit.Assert.assertEquals;
 
public class MessageServiceTest {
 
    private MessageService messageService;
 
    @Before
    public void setUp() {
        messageService = new MessageService();
    }
 
    @Test
    public void getMessage_ShouldReturnMessage() {
        assertEquals("Hello World!", messageService.getMessage());
    }
}

第三,src/main/java/com/demo目录下新建一个HelloWorld类,这是程序的主类,从MessageService对象获取信息,并使用Log4j写入日志,代码如下:

package com.demo;
 
import org.apache.log4j.Logger;
 
public class HelloWorld {
 
    private static final Logger LOGGER = Logger.getLogger(HelloWorld.class);
 
    public static void main(String[] args) {
        MessageService messageService = new MessageService();
 
        String message = messageService.getMessage();
        LOGGER.info("Received message: " + message);
    }
}

第四,src/main/resources目录中,使用log4j.properties配置log4j,log4j.properties文件如下:

log4j.appender.Stdout=org.apache.log4j.ConsoleAppender
log4j.appender.Stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.Stdout.layout.conversionPattern=%-5p - %-26.26c{1} - %m\n
 
log4j.rootLogger=DEBUG,Stdout

执行编译打包 gradle build

执行 gradle test

我们可以看到,在build->reports->tests文件夹中,会生成test的报告


执行 java -jar hello_gradle.jar后,出现下面错误,该问题原因是由于项目依赖了log4j 和 junit ,编译打包项目并没有把这两个包也打包进项目。

在build.gradle中,加入如下代码即可。

jar {
    from {    configurations.compile.collect  {  it.isDirectory()? it :zipTree(it)}}
}

成功打印。

5、多项目构建

参考 http://blog.jobbole.com/84471/

© 著作权归作者所有

共有 人打赏支持
唐家V

唐家V

粉丝 11
博文 13
码字总数 8402
作品 0
中山
Gradle构建入门

Gradle构建入门 会飞的污熊2017-12-102 阅读 springgradle 在开发Spring Boot应用的时候,除了Maven以外,Gradle也是一个不错的构建选择。IDEA 默认使用Gradle工具做Android的构建程序,在开...

会飞的污熊 ⋅ 2017/12/10 ⋅ 0

Kafka源码环境搭建

本文主要讲述的是如何搭建Kafka的源码环境,主要针对的Windows操作系统下IntelliJ IDEA编译器,其余操作系统或者IDE可以类推。 1.安装和配置JDK 确认JDK版本至少为1.7,最好是1.8及以上。使用...

u013256816 ⋅ 2017/11/14 ⋅ 0

使用Gradle构建工具开发Kotlin Web应用程序

1.安装Gradle 下载地址https://gradle.org/install。笔者使用的Gradle下载地址链接: http://pan.baidu.com/s/1gf9qyC7 密码: u3k6。注意Gradle要求jdk1.7或更高 下载后的zip包如下 将zip包解...

Mcx陌晨旭 ⋅ 2017/06/14 ⋅ 0

关于Android Studio 和 Gradle的那些事儿

本文为刘小米作者原创,转载请注明出处,否则将依法追究版权 在进入正题之前,先拉个家常,本周进了一个很nice的团队,欣赏我们的Leader TutorChen,让项目开发变得有趣,乐于分享,并且耐心...

刘小米 ⋅ 2014/12/07 ⋅ 5

jenkins + docker实现java服务的cd

jenkins + docker实现java服务的cd 四号程序员2017-11-283 阅读 Linux cd(持续部署)是非常好的软件研发实践。 本文介绍如果通过jenkins(和一些插件) + docker实现java项目的持续部署(cd)。 ...

四号程序员 ⋅ 2017/11/28 ⋅ 0

gradle and studio

Gradle Plugin 用户使用指南 Gradle 作为一种新的集成工具,关于 Gradle 的配置信息,多版本构建,签名,依赖导入,依赖多工程,测试等等 build.gradle 中配置信息,都在这里。 Gradle 之构建...

掘金官方 ⋅ 2017/12/29 ⋅ 0

Android Studio安装

Windows环境下Android Studio v1.5安装教程 准备工具 JDK安装包。 要求:JDK 7以及以上版本。 Android Studio安装文件。 下载地址:http://www.oschina.net/news/68156/android-studio-1-5 ...

Mysoft ⋅ 2015/12/02 ⋅ 0

微信热修复tinker及 tinker server 的快速接入方法

当前热修复方案很多,今天研究了下微信的tinker,使用效果还是不错的,配合tinker server服用更佳。本文介绍两者的使用,以便大家快速接入。 目录 1.tinker接入指南 •安装tinker gradle插件...

不怕摔倒的菜鸟 ⋅ 2017/11/21 ⋅ 0

Gradle的基本使用

Gradle的介绍 Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化建构工具。它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,抛弃了基于XML的各种繁琐配置。 面向Java应用为...

xiahuawuyu ⋅ 2016/08/04 ⋅ 0

构建 Docker 镜像,还属Gradle靠谱!

Docker, 是一个开源的, 基于 LXC 的轻量型容器管理器。 借助 Docker, 开发人员只需 将应用程序及所依赖的运行环境 打包到一个可移植的容器中, 就可以正常运行, 而不必考虑 语言、框架及...

IBMdW ⋅ 04/10 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

磁盘管理—逻辑卷lvm

4.10-4.12 lvm 操作流程: 磁盘分区-->创建物理卷-->划分为卷组-->划分成逻辑卷-->格式化、挂载-->扩容。 磁盘分区 注: 创建分区时需要更改其文件类型为lvm(代码8e) 分区 3 已设置为 Linu...

弓正 ⋅ 26分钟前 ⋅ 0

Spring源码解析(六)——实例创建(上)

前言 经过前期所有的准备工作,Spring已经获取到需要创建实例的 beanName 和对应创建所需要信息 BeanDefinition,接下来就是实例创建的过程,由于该过程涉及到大量源码,所以将分为多个章节进...

MarvelCode ⋅ 45分钟前 ⋅ 0

a href="#"

<a href="#">是链接到本页,因为你有的时候需要有个链接的样式,但是又不希望他跳转,这样写,你可以把这个页面去试试

颖伙虫 ⋅ 52分钟前 ⋅ 0

js模拟栈和队列

栈和队列 栈:LIFO(先进后出)一种数据结构 队列:LILO(先进先出)一种数据结构 使用的js方法 1.push();可以接收任意数量的参数,把它们逐个推进队尾(数组末尾),并返回修改后的数组长度。 2....

LIAOJIN1 ⋅ 53分钟前 ⋅ 0

180619-Yaml文件语法及读写小结

Yaml文件小结 Yaml文件有自己独立的语法,常用作配置文件使用,相比较于xml和json而言,减少很多不必要的标签或者括号,阅读也更加清晰简单;本篇主要介绍下YAML文件的基本语法,以及如何在J...

小灰灰Blog ⋅ 今天 ⋅ 0

IEC60870-5-104规约传送原因

1:周期循环2:背景扫描3:自发4:初始化5:请求6:激活7:激活确认8:停止激活9:停止激活确认10:激活结束11:远程命令引起的返送信息12:当地命令引起的返送信息13:文件传送20:响应总召...

始终初心 ⋅ 今天 ⋅ 0

【图文经典版】冒泡排序

1、可视化排序过程 对{ 6, 5, 3, 1, 8, 7, 2, 4 }进行冒泡排序的可视化动态过程如下 2、代码实现    public void contextLoads() {// 冒泡排序int[] a = { 6, 5, 3, 1, 8, 7, 2, ...

pocher ⋅ 今天 ⋅ 0

ORA-12537 TNS-12560 TNS-00530 ora-609解决

oracle 11g不能连接,卡住,ORA-12537 TNS-12560 TNS-00530 TNS-12502 tns-12505 ora-609 Windows Error: 54: Unknown error 解决方案。 今天折腾了一下午,为了查这个问题。。找了N多方案,...

lanybass ⋅ 今天 ⋅ 0

IDEA反向映射Mybatis

1.首先在pom文件的plugins中添加maven对mybatis-generator插件的支持 ` <!-- mybatis逆向工程 --><plugin><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-ma......

lichengyou20 ⋅ 今天 ⋅ 0

4.10/4.11/4.12 lvm讲解 4.13 磁盘故障小案例

准备磁盘分区 fdisk /dev/sdb n 创建三个新分区,分别1G t 改变分区类型为8e 准备物理卷 pvcreate /dev/sdb1 pvcreate /dev/sdb2 pvcreate /dev/sdb3 pvdisplay/pvs 列出当前的物理卷 pvremo...

Linux_老吴 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部