夫Java语言者 , 有构建工具者三 , 一曰Ant , 再曰Maven , 三曰Gradle 。 Ant者 , 上古之物也 , 今人多弃之 。 Maven者 , 中古之产物也 , 尝为众码农所爱 , 于今爱之者亦众 。 三者中 , Gradle最少 , 以Maven繁重不堪轻用 , 是故有异士造Gradle也 。 然二者之异同 , 时人多不甚了了 , 故为此文 , 为诸公辩之 。
二者之异也 , 一则引入简繁之不同 , Maven若引依赖 , 必先写dependency , 再写groupId , 三写artifactId , 至于version、scope之流 , 可略之也 。 所见如左:
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
</dependency>
而Gradle则弃其所以繁重 , 而简约之 , 仅以只言而异之 , 所见如左:
dependencies {
compile 'org.hibernate:hibernate-core:3.6.7.Final'
testCompile ‘junit: junit: 4. + '
时人因以为简 。
二者之异也 , 再则scope异也 , 以Maven之重 , scope有complie、provided、runtime、test、system、import之六分 。 而Gradle则弃其繁重 , 取其精要 , 以compile、runtime、testCompile、testRuntime四分狎之 , 而其版本亦不做限 , 以+号示之可动态理之也 。
二者之异也 , 三则多模块异也 。 若以Maven构建多模块 , 则佯以一父模块辅之 , 列诸模块于其下 。 而Gradle则不然 , 可依次构造诸模块 , 既尔略改settings.gradle文件 , 列依赖模块于其中 , 遂引模块于build.gradle , 即成也 。
二者之异众亦 , 非一小文所能尽言者 。 夫技巧之演进 , 如造化之莫测 。 凡夫穷其白首 , 亦不能尽得其中之奥妙 。 实可叹也 。
【Java|Java程序员应知应会之Maven和Gradle的区别】
- Java|Java:为什么使用Java而不是python?
- 产品经理|广州蓝景分享-前端语言jQuery、JavaScript与JS 三者间的区别
- javascript|Web前端:Angular有哪些优缺点?
- Java|手机上的无缝光学变焦,还有IP68+4K屏幕,这才是真正的微单手机
- 移动互联网|Java:Java与Node.js对比学习必备
- Java|消息称苹果自研5G芯片失败!iPhone将继续采用高通芯片,网友:先把信号问题解决了吧
- Java|三星连续9年“稳居”第一,销量远超苹果,为何在中国火不起来?
- Java|全系徕卡?小米12S系列官宣,徕卡+小米的首款产品!
- javascript|罗合琪:大咖转型社群团购难以取得大成果的主要原因是?
- Java|华为彻底摆脱谷歌安卓影子,倪光南院士期待成真?