神兵利器Gradle

Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化建构工具,他集Maven的规范及Ant的灵活于一身,是更好用的构建工具,

在开发社区中也呈现越来越流行的趋势。通俗点说,他就是一个实现了Maven中央库的增强版本的Ant。支持插件机制,工程依赖,

与Maven与生俱来的兼容性,更好更灵活的groovy构建语法,是构建Java项目非常好的选择,另外有更多自动化的可能性。

但是gradle也有一个天生的最大缺点,GFW对其有很大的影响,所以受网络环境影响很大,

前期我在使用时,公司和家里的网络状况不一致,体验很差,翻墙后好了很多。

官方网站:https://gradle.org/


(一)安装篇

废话不多说,先进行安装

安装分为普通安装及IDE安装,如果你在服务器上使用,使用普通安装即可,在自己本机开发环境还是使用IDE安装比较多

普通安装:

普通安装不赘述,参考官方网站安装即可,https://gradle.org/install

IDEA安装:

Eclipse通常需要安装buildship插件,官网上也有详细的安装说明

http://www.vogella.com/tutorials/EclipseGradle/article.html

不愿意阅读英文的,可以参考中文(但是最权威的还是阅读英文较好):

http://blog.csdn.net/buqutianya/article/details/50226721

IDEA的使用,IDEA其实不用安装,实际就自带gradle支持,只需要看下使用手册即可

https://www.jetbrains.com/help/idea/2016.3/gradle.html

安装都较为简单,需要注意的是,在中国的网络环境下,下载安装包可能会较慢,但是还是可以下载下来的,耐心等待即可。


(二)目录篇

一个标准的gradle工程可能有以下目录,你可以通过【gradle init --type java-library】命令来新建一个gradle的项目,

当然也可以创建别的类型项目,选择不同的参数即可。

├── build.gradle

├── gradle

├── gradlew

├── gradlew.bat

├── settings.gradle

└── src

(1)build.gradle:核心文件,依赖及任务定义都定义在此文件中

(2)gradle、gradlew、gradlew.bat:其实都是gradlew工具的依赖文件,gradlew可以认为是包装器,

         记录了构建这个工程是所使用的gradle版本信息及相关设置。使用gradle xxx的命令,全都可以使用gradlew xxx来进行替换。当使用gradlew xxx的时候,操作系统会自动下载创建这个工程时的gradle版本并执行命令。这部分在网络上共享项目时,为避免版本冲突会有用。

(3)settings.gradle:gradle的基础配置文件,在多模块的场景下配置模块之间的依赖关系,单工程下,此文件无有效内容

        发现了吗,只有build.gradle文件是关键的文件,一个gradle工程,只基于这一个文件。根目录下有build.gradle文件,

        就会认为这个是一个gradle的项目。该文件中定义了gradle所需要的所有任务及依赖信息。

        我们来看下这个文件中有什么基本内容

(三)构建文件

(1)插件定义:以下这句定义了工程集成了java插件

    apply plugin: 'java'

 我们常见的web开发的插件还有:

apply plugin: 'war'

apply plugin: 'idea'

apply plugin: 'eclipse-wtp'

apply plugin: 'org.akhikhl.gretty'

apply plugin: 'org.flywaydb.flyway'


(2)库定义:定义jar的下载库位置,这部分定义和maven其实是一样的

repositories {

	    // Use 'jcenter' for resolving your dependencies.

	    // You can declare any Maven/Ivy/file repository here.

	    jcenter()

	}

为了更快的下载速度,我们通常使用阿里云的镜像库:

repositories {

        mavenLocal()

        maven { url 'http://maven.aliyun.com/nexus/content/groups/public' }

        mavenCentral()    

	}

 (3) 依赖关系定义:

    

dependencies {

	    compile 'org.slf4j:slf4j-api:1.7.21'

	    testCompile 'junit:junit:4.12'

	}

是不是比maven的xml定义要简洁很多,其实他是与maven一脉相承的,maven的库网站上一样有gradle格式的坐标

http://mvnrepository.com/


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值