了解一下Maven和Gradle

Java的世界就是这么复杂。。。

《了解一下Maven和Gradle》

很久很久以前写过一个Ant的任务xml。异常痛苦。这件天花了点时间了解Maven。下面的结论应该是有些偏颇和过时。不过,了解一个以前不知道的实物总是这样的。

Maven解决的几个痛点

  1. 包依赖:搜索包还是得去官网,搜到后再讲对应的xml粘贴到pom.xml中
  2. 构建:直接mvn package就可以打包了
  3. 工程结构:约定好了工程结构。但是为啥没找到自动生成工程结构的工具?
  4. 包发布:可以mvn install到local repository。不知道发布到Centeral Repo是否会比较方便。就冲官方Centeral Repo,感觉不会很方便的。。
  5. pom可继承,公司级别写一个base的,然后项目继承之
  6. 各种插件。不过也带来心痛点

Maven带来的新痛点

  1. Maven本身带来了很大的学习成本。在Amazon就可以搜到好几本专门讲Maven的书。我去,一个包管理得看一本书。。一如既往地很Java很复杂。
  2. pom.xml基于xml本身就把事情弄复杂了。很多pom的xml标签需要熟悉。很多坑需要踩。
  3. pom.xml手写。。eclipse有基于form的pom编辑器,但我不想安装eclipse。。mvn提供生成pom.xml的命令行参数,但,太tm长了。也没有找到方便的生成、操作pom.xml的工具。
  4. 干啥都要插件。。生成一个MANIFEST也要用插件

现在有了Gradle。知道Gradle还是在看Android工程时看到的。
Java强类型注定了它的工程配置文件只能用别的语言来描述。总不能用Java来描述吧。那么就用Java世界的标配xml来描述好了。于是就有ant.xml和pom.xml。xml虽然可以描述一切。对于逻辑描述真实捉襟见肘。于是就有人用另一个JVM语言来描述,我想为啥不用jruby呢?嗯,我熟悉,所以我希望是用jruby,学习成本减少很多。可是,Gradle是基于Groovy的。Groovy本来是要作为服务端语言被发明的。但是作者都说了,早知道有人发明了Scala,我就不发明Groovy了。现在Gradle把它捡起来,用来做自动化构建。还成立了Gradle. Inc!这让我想起了npm, inc。歪果仁为一个包管理工具和自动构建工具分别成立了一个公司!我觉得这里面应该有很多我不了解的东西。。

好了Gradle来了(其实很早以前就来了。。)
基于JVM动态语言的构建描述DSL。表达力比XML强太多。它试图集合Ant和Maven的优点,并解决它们的痛点。

好吧,我还没有开始了解Gradle。因为我还得学一下Groovy。。。可能使用Gradle并不需要学习Groovy,只需会使用对应的DSL就好了。也可能Groovy很好学,花一天时间就能学会。

我找到的资料都好老啊。我怀疑是我搜索的姿势不对。。
参考:
2014:The Ultimate Java Build Tool Comparison: Gradle, Maven, Ant + Ivy
2009:We’re Used to the Axe Grinding

    原文作者:wangjinghan
    原文地址: https://www.jianshu.com/p/27fa10f66a9f
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞