- 浏览: 1047748 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (1441)
- 软件思想&演讲 (9)
- 行业常识 (250)
- 时时疑问 (5)
- java/guava/python/php/ruby/R/scala/groovy (213)
- struct/spring/springmvc (37)
- mybatis/hibernate/JPA (10)
- mysql/oracle/sqlserver/db2/mongdb/redis/neo4j/GreenPlum/Teradata/hsqldb/Derby/sakila (268)
- js/jquery/jqueryUi/jqueryEaseyUI/extjs/angulrJs/react/es6/grunt/zepto/raphael (81)
- ZMQ/RabbitMQ/ActiveMQ/JMS/kafka (17)
- lucene/solr/nuth/elasticsearch/MG4J (167)
- html/css/ionic/nodejs/bootstrap (19)
- Linux/shell/centos (56)
- cvs/svn/git/sourceTree/gradle/ant/maven/mantis/docker/Kubernetes (26)
- sonatype nexus (1)
- tomcat/jetty/netty/jboss (9)
- 工具 (17)
- ETL/SPASS/MATLAB/RapidMiner/weka/kettle/DataX/Kylin (11)
- hadoop/spark/Hbase/Hive/pig/Zookeeper/HAWQ/cloudera/Impala/Oozie (190)
- ios/swift/android (9)
- 机器学习&算法&大数据 (18)
- Mesos是Apache下的开源分布式资源管理框架 (1)
- echarts/d3/highCharts/tableau (1)
- 行业技能图谱 (1)
- 大数据可视化 (2)
- tornado/ansible/twisted (2)
- Nagios/Cacti/Zabbix (0)
- eclipse/intellijIDEA/webstorm (5)
- cvs/svn/git/sourceTree/gradle/jira/bitbucket (4)
- jsp/jsf/flex/ZKoss (0)
- 测试技术 (2)
- splunk/flunm (2)
- 高并发/大数据量 (1)
- freemarker/vector/thymeleaf (1)
- docker/Kubernetes (2)
- dubbo/ESB/dubboX/wso2 (2)
最新评论
Gradle和Maven都是项目自动构建工具,编译源代码只是整个过程的一个方面,更重要的是,你要把你的软件发布到生产环境中来产生商业价值,所以,你要运行测试,构建分布、分析代码质量、甚至为不同目标环境提供不同版本,然后部署。整个过程进行自动化操作是很有必要的。
整个过程可以分成以下几个步骤:
•编译源代码
•运行单元测试和集成测试
•执行静态代码分析、生成分析报告
•创建发布版本
•部署到目标环境
•部署传递过程
•执行冒烟测试和自动功能测试
如果你手工去执行每一个步骤无疑效率比较低而且容易出错,有了自动化构建你只需要自定义你的构建逻辑,剩下的事情交给工具去完成。
虽然两者都是项目工具,但是maven现在已经是行业标准,Gradle是后起之秀,很多人对他的了解都是从android studio中得到的,Gradle抛弃了Maven的基于XML的繁琐配置,众所周知XML的阅读体验比较差,对于机器来说虽然容易识别,但毕竟是由人去维护的。取而代之的是Gradle采用了领域特定语言Groovy的配置,大大简化了构建代码的行数,比如在Maven中你要引入一个依赖:
<properties>
<kaptcha.version>2.3</kaptcha.version>
</properties>
<dependencies>
<dependency>
<groupId>com.google.code.kaptcha</groupId>
<artifactId>kaptcha</artifactId>
<version>${kaptcha.version}</version>
<classifier>jdk15</classifier>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency>
</dependencies>
然后我将其转换成Gradle脚本,结果是惊人的:
dependencies {
compile('org.springframework:spring-core:2.5.6')
compile('org.springframework:spring-beans:2.5.6')
compile('org.springframework:spring-context:2.5.6')
compile('com.google.code.kaptcha:kaptcha:2.3:jdk15')
testCompile('junit:junit:4.7')
}
注意配置从原来的28行缩减至7行!这还不算我省略的一些父POM配置。依赖的groupId、artifactId、 version,scope甚至是classfier,一点都不少。较之于Maven或者Ant的XML配置脚本,Gradle使用的Grovvy脚本杀伤力太大了,爱美之心,人皆有之,相比于七旬老妇松松垮垮的皱纹,大家肯定都喜欢少女紧致的脸蛋,XML就是那老妇的皱纹。
Gradle给我最大的有点是两点。其一是简洁,基于Groovy的紧凑脚本实在让人爱不释手,在表述意图方面也没有什么不清晰的地方。其二是灵活,各种在Maven中难以下手的事情,在Gradle就是小菜一碟,比如修改现有的构建生命周期,几行配置就完成了,同样的事情,在Maven中你必须编写一个插件,那对于一个刚入门的用户来说,没个一两天几乎是不可能完成的任务。
整个过程可以分成以下几个步骤:
•编译源代码
•运行单元测试和集成测试
•执行静态代码分析、生成分析报告
•创建发布版本
•部署到目标环境
•部署传递过程
•执行冒烟测试和自动功能测试
如果你手工去执行每一个步骤无疑效率比较低而且容易出错,有了自动化构建你只需要自定义你的构建逻辑,剩下的事情交给工具去完成。
虽然两者都是项目工具,但是maven现在已经是行业标准,Gradle是后起之秀,很多人对他的了解都是从android studio中得到的,Gradle抛弃了Maven的基于XML的繁琐配置,众所周知XML的阅读体验比较差,对于机器来说虽然容易识别,但毕竟是由人去维护的。取而代之的是Gradle采用了领域特定语言Groovy的配置,大大简化了构建代码的行数,比如在Maven中你要引入一个依赖:
<properties>
<kaptcha.version>2.3</kaptcha.version>
</properties>
<dependencies>
<dependency>
<groupId>com.google.code.kaptcha</groupId>
<artifactId>kaptcha</artifactId>
<version>${kaptcha.version}</version>
<classifier>jdk15</classifier>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency>
</dependencies>
然后我将其转换成Gradle脚本,结果是惊人的:
dependencies {
compile('org.springframework:spring-core:2.5.6')
compile('org.springframework:spring-beans:2.5.6')
compile('org.springframework:spring-context:2.5.6')
compile('com.google.code.kaptcha:kaptcha:2.3:jdk15')
testCompile('junit:junit:4.7')
}
注意配置从原来的28行缩减至7行!这还不算我省略的一些父POM配置。依赖的groupId、artifactId、 version,scope甚至是classfier,一点都不少。较之于Maven或者Ant的XML配置脚本,Gradle使用的Grovvy脚本杀伤力太大了,爱美之心,人皆有之,相比于七旬老妇松松垮垮的皱纹,大家肯定都喜欢少女紧致的脸蛋,XML就是那老妇的皱纹。
Gradle给我最大的有点是两点。其一是简洁,基于Groovy的紧凑脚本实在让人爱不释手,在表述意图方面也没有什么不清晰的地方。其二是灵活,各种在Maven中难以下手的事情,在Gradle就是小菜一碟,比如修改现有的构建生命周期,几行配置就完成了,同样的事情,在Maven中你必须编写一个插件,那对于一个刚入门的用户来说,没个一两天几乎是不可能完成的任务。
发表评论
-
研发管理工具
2017-08-09 15:26 485一、产品介绍 JIRA是Atlas ... -
webstorm的html文件如何不折叠style?
2016-06-27 17:16 660webstorm的html文件如何不 ... -
持续集成工具的发展历程以及未来
2016-04-24 01:08 650持续集成工具的发展历程以及未来 原创 2016-04- ... -
maven POM.xml 标签详解
2016-01-04 00:25 743<span style="margin: 0 ... -
mvn的常用命令
2016-01-04 00:26 10001. mvn help:describe 你是否因为记不清 ... -
maven的assemble的使用
2016-01-04 00:27 1016在开发Maven项目中,我们可能有各种各样的打包需求,当然 ... -
Gradle是一款非常简洁的项目构建工具
2016-01-03 00:01 803Gradle是一款非常简洁的项目构建工具,相比ant和ma ... -
Vim是一个类似于Vi的著名的功能强大、高度可定制的文本编辑器
2016-01-15 10:31 624Vim是一个类似于Vi的著名的功能强大、高度可定制的文本编 ... -
Markdown的语法简洁明
2016-01-22 14:29 826GitBook[1] 是一个基于 Node.js 的命令行工 ... -
eclipse的使用
2015-12-31 12:01 463eclipse的快捷键 Ctrl + Shift + X 将小 ... -
Stack Overflow
2015-12-30 10:55 569Stack Overflow是一个与程序相关的IT技术问答网站 ... -
flyway的使用
2015-12-29 21:42 1136前言:最近工作上遇到个问题,项目开发过程中,开发代码可以通过s ... -
Gradle的使用
2015-12-29 20:16 1194工具版本:Gradle:2.2.1 Groovy:2.3.6 ... -
maven出现感叹号
2015-12-16 14:51 545maven出现感叹号的原因 产生原因: 因为一些maven管 ... -
Gradle项目构建工具
2015-12-10 01:02 685Gradle是一款非常简洁的项目构建工具,相比ant和mave ... -
使用的工具
2015-11-30 15:31 4451.Fiddler是一个http协议调试代理工具,它能够记录并 ...
相关推荐
SpringBoot、Gradle、Maven、Java和Groovy是Java生态系统中的重要组成部分,它们在现代软件开发中扮演着至关重要的角色。这篇详细的知识点解析将深入探讨这些技术及其相互关系。 1. **SpringBoot**: SpringBoot是...
Gradle插件,创建一个UploadArchives任务,自动将所有Java、Kotlin或Android库上载到任何Maven实例。这个插件基于chris-banes的初始实现,并且已经被增强以添加kotlin支持并跟上最新的更改。
这个插件对于那些同时使用Gradle和Maven的项目尤其有用,因为它实现了两者的互操作性,使得开发团队可以利用Gradle的强大功能,同时确保工件能够被Maven生态系统接受和使用。 在Android开发中,Gradle是首选的构建...
标题中的“springboot整合rabbitMq和多数据源动态切换和跨域访问和gradle加maven和shiro安全框架和lombok自动getset生成”表明这是一个关于Spring Boot集成多个技术的项目。以下是对这些技术及其整合的详细解释: 1...
主要介绍了详解阿里云maven镜像库配置(gradle,maven),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
在构建和管理Java项目时,Gradle和Maven是目前最流行的两个构建工具。Gradle是一种基于Groovy语言的自动化构建工具,而Maven则是基于XML的项目管理和构建自动化工具。虽然两者在使用上有区别,但它们都可以通过配置...
在构建多模块项目时,Maven和Gradle各有优势。Maven以其标准化的流程和强大的依赖管理受到广泛认可,而Gradle则以高度定制化和高效构建闻名。选择哪种工具取决于项目需求、团队熟悉度和性能考量。了解和熟练掌握这两...
本文将详细讲解"ci-concourse-caching-sample",这是一个针对基于Gradle和Maven项目的Concourse缓存功能的示例。通过理解和应用这个示例,开发者可以有效地提高构建速度,减少不必要的资源消耗。 首先,让我们了解...
首先,Android Maven Gradle 插件是Gradle生态系统中的一员,它允许Android开发者利用Maven的便利性,如仓库管理和依赖解析,同时享受Gradle强大的构建自动化功能。这一插件使得Android项目可以无缝地与Maven仓库...
本文将详细探讨如何在Gradle和Maven这两个流行的构建工具中,利用`kotlin-jlink-examples`项目来集成JLink,从而创建和运行自定义的Java运行时环境。 首先,我们需要了解`kotlin-jlink-examples`项目的核心概念。该...
Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建工具。它提供了许多功能来帮助开发者构建、测试和部署Android应用程序。Gradle Metadata是Gradle的一个组件,负责管理项目的依赖关系和项目构建过程。...
**Spock 示例规范及其Gradle和Maven构建详解** `spock-example` 是一个用于演示和教学Spock框架使用规范的项目,它包含了使用Gradle和Maven两种流行的构建工具的配置。Spock是一个功能强大的Java和Groovy测试框架,...
gradle-maven-publish-plugin Gradle plugin that creates an uploadArchives task to automatically upload all of your Java, Kotlin or Android libraries to any Maven instance. This plugin is based on Chris...
【maven】说明:Gradle maven工件发布与maven、maven发布、android maven Gradle插件的演练。该项目包含..., (Gradle maven artifacts publishing walkaround with maven , maven-publish , android-maven gradle ...
Maven和Gradle在处理依赖上有许多共同点:它们都会自动解决依赖树,即下载某个库时,也会下载其依赖的其他库;它们都有缓存机制,避免重复下载;它们都支持多仓库,包括本地、远程和私有仓库。 不过,Gradle在某些...
gradle-maven-publish-plugin Gradle插件创建了uploadArchives任务,以自动将所有Java,Kotlin或Android库上传到任何Maven实例。 该插件基于并已得到增强,以添加Kotlin支持并紧跟最新变化。建立module/build.gradle...
- 更好的兼容性,使得Maven和Gradle项目的迁移更为便捷。 **局限**: - 可能增加项目的复杂性,特别是对于不熟悉Maven的团队。 - 需要额外维护依赖版本管理的配置文件。 综上所述,Gradle DMA Plugin是针对Gradle...
Maven和Gradle是两种广泛使用的Java项目构建工具,它们各自有着独特的优势。本篇文章将详细探讨如何使用Maven来构建一个包含Gradle AspectJ功能的jar文件。 首先,让我们了解一下Maven。Maven是一种基于项目对象...
Maven 到 Gradle 将 Maven 依赖项转换为 Gradle 的非常基本的网页。 目前只解析 groupId、artifactId 和 version。 范围被忽略。 如果使用版本变量,它将保留它,但您仍然需要在 build.gradle 文件中定义该变量 ...
该存储库包含两个组件:脚本和插件: 这些脚本的工作方式与但同时支持maven和maven-publish以及pom.xml更多自定义。 该插件将是一个自定义的gradle插件,它将使工作流程更加简单。 当然,脚本/插件旨在与java和...