1)优点

简化了项目依赖管理。

当年,多少人被 SSH 整合搞死搞活,很多时候,是因为依赖不完整,或者版本不正确。 自从 Maven 出来后,终于可以无痛了~当然,也有一部分功劳是 Spring Boot ,这是后 话。

易于上手,对于新手可能一个 mvn clean package 命令就可能满足我们的工作。

便于与持续集成工具(Jenkins)整合。

便于项目升级,无论是项目本身升级还是项目使用的依赖升级。

有助于多模块项目的开发,一个模块开发好后,发布到仓库,依赖该模块时可以直接从仓库更新,而不用自己去编译。

Maven 有很多插件,便于功能扩展,比如生产站点,自动发布版本等。

2)缺点

Maven 是一个庞大的构建系统,学习难度大。

这里的学习,更多指的完整学习。如果基本使用,并不会存在该问题。

Maven 采用约定优于配置的策略(convention over configuration),虽然上手容易,但是一旦出了问题,难于调试。这个确实,略微痛苦。

当依赖很多时,m2eclipse 老是搞得 Eclipse 很卡。

使用 IDEA ,而不是 Eclipse ,完美解决。

中国的网络环境差,很多 repository 无法访问,比如 Google Code、 JBoss 仓库无法访 问等。

这个也好解决,在 中增加阿里巴巴的 Maven 私服,具体可以参见 《提高 Maven 速度 —— Maven 仓库修改成国内阿里巴巴地址》 文章。