夫Java语言者,有构建工具者三,一曰Ant,再曰Maven,三曰Gradle。Ant者,上古之物也,今人多弃之。Maven者,中古之产物也,尝为众码农所爱,于今爱之者亦众。三者中,Gradle最少,以Maven繁重不堪轻用,是故有异士造Gradle也。然二者之异同,时人多不甚了了,故为此文,为诸公辩之。
二者之异也,一则引入简繁之不同,Maven若引依赖,必先写dependency,再写groupId,三写artifactId,至于version、scope之流,可略之也。所见如左:
而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,即成也。
二者之异众亦,非一小文所能尽言者。夫技巧之演进,如造化之莫测。凡夫穷其白首,亦不能尽得其中之奥妙。实可叹也。
留言与评论(共有 0 条评论) “” |