`
rayn115
  • 浏览: 68911 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

ant-maven,gradle太好用了

阅读更多

一、寻找gradle的历程

一开始的时候,我们只有一个工程,所有要用到的jar包都放到工程目录下面,时间长了,工程越来越大,使用到的jar包也越来越多,难以理解jar之间的依赖关系。再后来我们把旧的工程拆分到不同的工程里,靠ide来管理工程之间的依赖关系,各工程下的jar包依赖是杂乱的。一段时间后,我们发现用ide来管理项程很不方便,比如不方便脱离ide自动构建,于是我们写自己的ant脚本。再后来,维护ant脚本变得痛苦,管理jar包更加痛苦。svn能管理源码的版本,却不能管理构建出的部署部件的版本。于是我们决定用maven,然而pom.xml的配置实在太繁了!最后,我找到了神器,gradle!

二、为什么是gradle?

1. groovy 比 xml好用

Gradle用groovy来做为build脚本,比xml要易读易用得多。用过ant的人都知道,要在ant里面表达一个if分支功能有多么的麻烦,不直观。由于gradle的build脚本就是groovy程序,所以做分支循环等非常方便自然。

2. Convention over Configuration 比写大量ant基础脚本方便

用ant的时候,要得定义哪里放源码,哪里放jar包,哪里放编译出的class文件等等,每个项目都要这样做,非常麻烦。gradle和maven一样,都定义了一个默认的目录结构,只要按要这个默认的规则来做,就不需要多写一行代码。而且gradle的目录的结构规范和maven是一样的。

3. 支付定义task,比maven灵活

maven可以帮助管理依赖关系,但是要在maven里实现一个简单的自定义功能,就很麻烦,要得写maven插件,而在gradle里,task是一等公民,可以轻易的添加自己的功能。

4. 灵活的依赖管理

ant没有依赖管理的功能,都要自己手动做,maven的依赖管理很死板,只能依赖于标准的maven artifact,不能依赖本地的某个jar文件或者其它的源码。而gradle则可以混合地同时支持这些依赖方法,这样可以让旧项目的迁移容易得多。

5. 默认就具有丰富的功能

只要安装好gradle,默认就支持java项目,war项目,ear项目,做单元测试,生成jar包,上传jar包到maven服务器,等等功能。一般的项目都已经够用了。

三、简单举例

安装完gradle之后,在一个目录里时建一个叫build.gradle的文件,一个工程就配好了。要支持生成jar包的jar工程,只要在build.gradle里面添加一行:

1
apply plugin: 'java'

现在在这个目录的命令行里运行gradle jar就可以自动完成把/src/main/java下的java文件编译,自动单元测试/src/test/java下的类,自动生成jar的功能了,太方便了。

让它依赖于spring,也很简单:

1
2
3
4
apply plugin: 'java'
dependencies {
    compile 'org.springframework:spring-context:3.0.4.RELEASE'
}

gradle便会自动地到maven服务器下载spring-context-3.0.4.RELEASE.jar,以及它所依赖的jar包。

还可以直接依赖本地jar包,如:

1
2
3
4
apply plugin: 'java'
dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')
}

这样就可以直接依赖/libs/目录下所有的jar文件了。

再比如自定义一个task:

1
2
3
4
5
6
apply plugin: 'java'
task myTask << {
    if (System.properties['love']) {
        println "I love you! Gradle!"
    }
}

在命令行执行gradle myTask就会运行这个myTask任务了。

更多功能,要得看http://www.gradle.org 上的官方手册。

分享到:
评论

相关推荐

    gradle-7.4-bin.zip

    Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建开源工具。它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,也增加了基于Kotlin语言的kotlin-based DSL,抛弃了基于XML的各种繁琐配置。 ...

    gradle-7.4-all.zip 极速下载

    Gradle免费版支持maven、Ivy仓库,支持传递性依赖管理,而不需要远程仓库或者是pom.xml和ivy.xml配置文件,基于Groovy,build脚本使用Groovy编写,Gradle免费版是一个基于Apache Ant和Apache ...版本为gradle-7.4。

    gradle-1.7-all

    类ant,类Maven的另外一种构建工具。 ...gradle-1.7-all.zip (binaries, sources and documentation) 参考资料:http://www.gradle.org/docs/current/userguide/userguide_single.html ...Ant,Maven,Gradle 简单比较 ...

    gradle 可运行demo 以及依赖资源包

    gradle 基于 Ant和Maven 项目自动化构建工具, 解压后配置 GRADLE_HOME,在 gradle_test 下打开cmd gradle运行 gradle copyOK

    gradle-4.1

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

    gradle-6.9-all.zip 快速下载

    Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建开源工具。它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,目前也增加了基于Kotlin语言的kotlin-based DSL,抛弃了基于XML的各种繁琐配置。

    javabuildtools:Java 构建工具 Ant、Maven、Gradle、JavaFX 端口 jfxmobile-plugin

    ANT_BASIC 概述了如何使用 ANT 构建编译和打包 Java 应用程序 MAVEN_中级 概述如何使用 maven 构建和编译 scala 应用程序 GRADLE_ADVANCED 高级使用 Gradle 为 Android 构建 JavaFX 应用程序 jfxmobile-plugin

    开发用jar包合集

    gradle-maven-2.3-rc-2.jar gradle-messaging-2.3-rc-2.jar gradle-model-core-2.3-rc-2.jar gradle-model-groovy-2.3-rc-2.jar gradle-native-2.3-rc-2.jar gradle-open-api-2.3-rc-2.jar gradle-osgi-2.3-...

    gradle-7.1.1.zip

    Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建开源工具,该压缩文件包含gradle-7.1.1-bin.zip、官网下载地址和init.gradle,欢迎下载!

    build-tool-overkill:可以使用 Ant、Maven 和 Gradle 构建的示例 Java 项目(用于比较目的)

    构建工具矫枉过正可以使用 Ant、Maven 和 Gradle 构建的示例 Java 项目(用于比较目的)。使用蚂蚁要编译和测试项目,请运行ant test 。 要生成覆盖率报告,请运行ant report 。 要将项目发布到本地目录,请运行ant ...

    Mastering.Gradle.178398136

    Master the migration techniques from build tools such as Ant and Maven into Gradle Integrate Gradle with popular continuous integration tools such as Jenkins and TeamCity In Detail With Gradle, you ...

    项目自动化建构工具Gradle:gradle-4.10.3-src

    Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化建构工具。 和Maven一样,Gradle只是提供了构建项目的一个框架,真正起作用的是Plugin。

    gradle5.6.3

    radle是一个基于Apache Ant和Apache Maven概念的项目自动化构建开源工具。它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,也增加了基于Kotlin语言的kotlin-based DSL,抛弃了基于XML的各种繁琐配置。

    实战Gradle_中文完整版---高清---有书签

    Gradle 是Java 软件开发中的自动化构建工具,类似于传统工具如Ant 和Maven。Gradle 吸收或沿用了Maven 中比较成功的一些实践,但相对于Maven 或Ant 又有极强的扩展。 《实战Gradle》(Gradle in Action)全方位地...

    introduction-to-build-tools:格但斯克理工大学系列讲座的构建工具(Ant、Maven、Gradle)使用示例

    构建工具介绍此工作区包含用于格但斯克理工大学系列讲座的构建工具(Ant 和 Maven)使用示例。 它们被分类在不同的目录中,每个工具使用示例一个。结构每个主题(构建工具)都有自己的目录。 在其中,每个示例都有...

    gradle-4.6-all

    gradle-4.6-all.zip Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建开源工具。它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,抛弃了基于XML的各种繁琐配置。

    gradle-3.5-all.zip 完整下载

    all the world 三种构建项目的工具,ant,maven,gradle,maven正在走向下滑路,大家正转向gradle的大量使用中,尤其是在springboot迅速走红的时刻,gradle更加是良好的springboot项目构建工具

    JAVA(maven)项目管理器.doc

    有三种:Maven,ant,gradle;它让我们更为方便的管理和构建项目; 2.maven快速入门; 2.1 Maven的概念; Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建。报告和文档的软件项目管理工具;...

    gradle-6.5-all.zip

    Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建开源工具。它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,目前也增加了基于Kotlin语言的kotlin-based DSL,抛弃了基于XML的各种繁琐配置。...

    Gradle-8.7-all最新版安装压缩包

    1.1 什么是Gradle? Gradle是一个开源构建自动化工具,专为大型项目设计。...与其他流行的构建工具(如Maven和Ant)相比,Gradle提供了以下优势: 性能:Gradle使用它的守护程序和增量构建技术来提高构建速度。

Global site tag (gtag.js) - Google Analytics