了解一下Maven和Gradle

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


很久很久以前写过一个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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,934评论 6 342
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,845评论 18 139
  • 当前,JVM生态圈主要的三大构建工具: Apache Ant(带着Ivy) Maven Gradle 对于刚开始接...
    清枫_小天阅读 5,823评论 1 13
  • 1. 什么是gradle? 很高兴能向大家介绍Gradle,这是一个基于JVM的富有突破性构建工具。 它为您提供了...
    eSky阅读 665评论 1 0
  • 活在当下,每天反省 他谈到,没有确凿的把握,纵使自不量力的梦想,看似高不可攀,还是要在胸中牢牢立下这个目标,并坚持...
    无欲有容阅读 392评论 4 7