什么是使用Maven的动机?我能否只创建一个构建脚本来代替?

5
根据什么是Maven,它的目标是:
  • 使构建过程变得简单
  • 提供统一的构建系统
  • 提供高质量的项目信息
  • 提供最佳实践开发指南
  • 允许透明地迁移到新功能
我能否只用bash编写构建脚本呢?
使用Maven项目的动机是什么?有没有示例?
2个回答

6
Maven在依赖管理方面做得非常好,这是其中一个更大的卖点。此外,它还有助于强制执行标准化的项目结构。美妙之处在于,我可以拿起任何使用Maven的项目,并且基本上立刻知道各种文件的位置。
Maven还有一个相当广泛的插件库,允许进行很多操作...从自动化静态代码分析(通过pmd/findbugs/checkstyle等),计算测试覆盖率,生成javadocs,生成源代码包,运行Jetty中的Web应用程序等等。
我告诉你,这不是一个容易学习的工具,但是如果你掌握了它,你会发现它所能做的一切。如果您想要我详细解释任何特定内容,请告诉我。

1
虽然这些优势在小型项目中可能看起来不太显著,但在大型项目中(随着项目规模的增长)它们具有巨大的意义,因此Maven变得非常必要。 - Scorpion
当然。它在大型项目中表现得非常出色。当你有多个开发人员时,添加像Sonatype Nexus或Apache Archiva这样的企业存储库也会有很大帮助。这些允许你将内部公司工件部署到一个中央存储库,所有开发人员都可以访问。 - Paul Dunnavant

4
Maven是一个工具,可以为您处理大量的项目设置和配置。例如,如果您想要一个Java项目能够与构建服务器正确集成、提供代码覆盖率信息,并生成可轻松在组织中的其他项目中使用的jar文件 - 您可以花费数周时间手动使用ANT进行设置,或者您可以采用Maven的方式来完成这些任务。
此外,您可以设置原型(已有许多预配置项目),以满足您所需的设置。这是在组织内强制执行标准并提高生产力的好方法。
Maven确实提供了一些有点严格的规则,但最终它大大缩短了许多不同任务所需的时间。我建议阅读O'Reilly的《Maven权威指南》作为资源进行查阅。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接