我即将开始一个Java项目只是为了练习.我读过关于Maven的内容,但我实际上并不了解它何时被使用.
你能给我一些实用的建议吗?Maven有很多帮助吗?Maven对我的项目实际做了什么?
Sle*_*led 180
它能做什么
Maven是一个"构建管理工具",它用于定义.java文件如何编译.class,打包到.jar(.war或.ear)文件中,(前/后)使用工具处理,管理您CLASSPATH以及所有其他需要的任务.建立你的项目.它类似于C/C++中的Apache Ant或Gradle或Makefiles,但它试图在其中完全自包含,通过合并其他常见任务(如下载和安装必要的库等),您不需要任何其他工具或脚本.
它也是围绕"构建可移植性"主题设计的,因此您不会遇到问题,因为在同一台计算机上使用相同的构建代码但在另一台计算机上没有相同的代码(这是一个已知问题,我们有Windows的虚拟机) 98台机器,因为我们无法在其他地方编译我们的一些Delphi应用程序).因此,它也是在使用不同IDE的人之间处理项目的最佳方式,因为IDE生成的Ant脚本难以导入到其他IDE中,但是现在所有IDE都理解并支持Maven(IntelliJ,Eclipse和NetBeans)).即使你最终不喜欢Maven,它最终也成为所有其他现代构建工具的参考点.
为什么你应该使用它
关于Maven有三件事非常好.
Maven将(在您声明您正在使用哪些库之后)下载您使用的所有库以及它们自动为您使用的库.这非常好,并且使得处理大量库变得非常容易.这可以让你避免"依赖地狱".它类似于Apache Ant的常春藤.
它使用" 约定优于配置 ",因此默认情况下您不需要定义要执行的任务.您不需要像在Ant或Makefile中那样编写"compile","test","package"或"clean"步骤.只需将文件放在Maven所期望的位置,它就可以解决问题.
Maven的也有很多很好的插件,你可以安装将要处理许多日常任务,从使用JAXB XSD模式生成的Java类,以测量测试覆盖率用Cobertura.只需将它们添加到您的身上pom.xml,它们就会与您想要做的其他事情相结合.
最初的学习曲线很陡峭,但(几乎)每个专业的Java开发人员都使用Maven或希望他们这样做.你应该在每个项目中使用Maven,但是如果你需要一段时间来习惯它并且有时你希望你可以手动做事,那就不要感到惊讶,因为学习新东西有时会受到伤害.但是,一旦你真正习惯了Maven,你会发现构建管理几乎没有时间.
如何开始
最好的起点是" Maven in 5 Minutes ".它将帮助您开始准备一个项目,以便您编写所有必要的文件和文件夹设置(是的,我建议使用快速入门原型,至少在开始时).
开始之后,您需要更好地了解该工具的使用方式.因为" 使用Maven更好地构建 "是理解其工作原理的最彻底的地方,然而," Maven:The Complete Reference "更新.阅读第一个以便理解,然后使用第二个作为参考.
来自Sonatype doc:
这个问题的答案取决于你自己的观点.绝大多数Maven用户都会将Maven称为"构建工具":一种用于从源代码构建可部署工件的工具.构建工程师和项目经理可能会将Maven称为更全面的东西:项目管理工具.有什么不同?像Ant这样的构建工具仅专注于预处理,编译,打包,测试和分发.诸如Maven之类的项目管理工具提供了构建工具中的功能的超集.除了提供构建功能外,Maven还可以运行报告,生成网站以及促进工作团队成员之间的沟通.
我强烈建议您查看Sonatype doc并花些时间查看可用插件以了解Maven的强大功能.
简而言之,它的运作概念水平高于(比如)Ant.使用Ant,您可以指定要构建的文件和资源集,然后指定您希望它们如何共振,并指定(clean/compile/jar)中应该发生的顺序.使用Maven,这一切都是隐含的.Maven希望在特定的地方找到你的文件,并自动使用它.因此,使用Maven设置项目可以简单得多,但你必须遵守Maven的规则!
| 归档时间: |
|
| 查看次数: |
99158 次 |
| 最近记录: |