一、寻找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 上的官方手册。
相关推荐
2. **本地存储**: 将下载的JAR文件保存到本地文件系统,通常是在项目的lib目录下,或者如果使用的是Maven或Gradle,可能是在`/lib`或`/dependencies`目录。 3. **配置构建脚本**: 对于Maven项目,需要在pom.xml文件...
Apache Ant 是一个开源的构建工具,它主要用于Java项目,但也可以用于其他语言的构建过程。...在实际项目中,为了获取最新特性和支持,通常建议使用更新的Ant版本或考虑使用Maven、Gradle等现代构建工具。
开发者可以通过Maven、Gradle等现代构建工具来管理这些依赖,确保所有需要的库都能正确地引入到项目中。对于手动管理依赖的项目,这些JAR文件会被放置在项目的类路径下,或者通过`-cp`命令行选项指定。 在使用这些...
与其他构建工具(如Maven和Gradle)相比,Ant的灵活性是其一大优势,但配置工作可能更繁琐。在大型项目中,通常会结合使用Ant和其他工具,如Ivy管理依赖,或者使用Maven或Gradle进行更高级的构建管理。 总之,...
Ant广泛应用于Java项目,尤其是与Maven和Gradle等现代构建工具一起使用,以满足不同项目的构建需求。虽然Maven和Gradle现在更流行,但Ant由于其灵活性和自定义性,仍然在许多项目中占有一席之地。 在实际开发中,...
此外,Ant还可以与其他工具集成,如Maven和Gradle,以实现更复杂的构建流程。 在JSP开发中,开发者通常会创建一个包含所有构建指令的Ant构建文件,这使得整个团队都能遵循一致的构建过程,提高开发效率并降低出错的...
在实际开发中,Apache Ant常与Maven、Gradle等其他构建工具一起使用,虽然它们有各自的优点和适用场景,但Ant以其高度的定制性和灵活性受到很多开发者的青睐。在部署、测试、打包等环节,Ant都扮演着重要角色。通过...
12. **Maven与Gradle的对比**:虽然Ant是早期的构建工具,但随着Maven和Gradle的兴起,它们在某些方面提供了更高级的功能,如自动依赖管理和约定优于配置的原则。然而,Ant依然因其灵活性和强大的定制能力在某些场景...
例如,Maven和Gradle等现代构建工具就是在Ant的基础上发展起来的,它们提供了更高级的特性,如依赖管理、自动构建生命周期等。 在安装Apache Ant 1.10.3时,你需要将其解压到适当的位置,并将`bin`目录添加到系统...
开发者可以通过构建工具(如Maven或Gradle)自动化处理依赖管理,确保所有必要的库都得到正确的版本和路径。 五、ant.license.txt "ant.license.txt"文件通常包含了Apache Ant的许可协议信息。Apache Ant遵循Apache...
Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建工具。它提供了许多功能来帮助开发者构建、测试和部署Android应用程序。Gradle Metadata是Gradle的一个组件,负责管理项目的依赖关系和项目构建过程。...
《Ant 1.6.5 集合包解析与...尽管现在有许多其他的构建工具,如Maven和Gradle,但Ant以其简洁和灵活的特性,依然在很多项目中占据一席之地。理解并掌握Ant的基本使用和配置,对于任何Java开发者来说都是十分有益的。
相比Android Studio早期使用的Ant和后来的Maven,Gradle提供了更加灵活的依赖管理和构建流程定制。 `gradle-6.7.1-all.zip`是Gradle的6.7.1版本,这个版本可能包含了一些性能优化、新功能和对旧版的兼容性改进。...
1、gradle8.7 2、gradle-8.7-bin 3、gradle--8.7 4、什么是Gradle?...与其他流行的构建工具(如Maven和Ant)相比,Gradle提供了以下优势: 性能:Gradle使用它的守护程序和增量构建技术来提高构建速度。
- **外部依赖**:Ant可以通过`<dependency>`元素管理项目依赖,但通常推荐使用Maven或Gradle这样的现代构建工具来处理复杂的依赖管理。 8. **与IDE集成**:大多数现代Java IDE(如Eclipse、IntelliJ IDEA)都支持...
Ant与Maven、Gradle等现代构建工具相比,虽然在配置上可能更为繁琐,但在灵活性和定制性方面表现出色。对于简单的项目或者需要高度自定义构建流程的项目,Ant是一个可靠的选择。了解和掌握Apache Ant对于Java开发...
在实际开发中,Ant常与其他工具结合使用,如Maven或Gradle,它们各自有各自的优点和适用场景。Ant因其灵活性和强大的定制能力,尤其适合那些对构建过程有特殊需求的项目。不过,对于大部分项目来说,Maven或Gradle的...
此外,Ant也可以与其他工具如Maven和Gradle集成,以利用它们的特定功能。 总的来说,"apache-ant-1.9.4"是一个实用的构建工具,为Java开发者提供了跨平台的解决方案,无论是在Windows还是Linux环境下,都能轻松地...
尽管随着技术的发展,新的构建工具如Maven和Gradle逐渐取代了Ant的部分角色,但在某些场景下,Ant仍然因其灵活性和可控性而被选择。了解和熟练掌握Ant的使用,对于Java开发人员来说仍然是十分必要的。
Ant与其他构建工具如Maven和Gradle相比,其优点在于灵活性和自定义程度高,允许开发者完全控制构建流程。然而,这也意味着更多的配置工作。Maven和Gradle则提供了更丰富的预定义结构和自动化功能。 总的来说,...