分享

Java程序员应知应会之Maven和Gradle的区别

 北欧模式 2022-06-27 发布于陕西

Java语言者,有构建工具者三,一曰Ant,再曰Maven,三曰GradleAnt者,上古之物也,今人多弃之。Maven者,中古之产物也,尝为众码农所爱,于今爱之者亦众。三者中,Gradle最少,以Maven繁重不堪轻用,是故有异士造Gradle也。然二者之异同,时人多不甚了了,故为此文,为诸公辩之。

二者之异也,一则引入简繁之不同,Maven若引依赖,必先写dependency,再写groupId,三写artifactId,至于versionscope之流,可略之也。所见如左:

<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之重,scopecomplieprovidedruntimetestsystemimport之六分。而Gradle则弃其繁重,取其精要,以compileruntimetestCompiletestRuntime四分狎之,而其版本亦不做限,以+号示之可动态理之也。

二者之异也,三则多模块异也。若以Maven构建多模块,则佯以一父模块辅之,列诸模块于其下。而Gradle则不然,可依次构造诸模块,既尔略改settings.gradle文件,列依赖模块于其中,遂引模块于build.gradle,即成也。

二者之异众亦,非一小文所能尽言者。夫技巧之演进,如造化之莫测。凡夫穷其白首,亦不能尽得其中之奥妙。实可叹也。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多