我将开始一个Java项目只是为了练习。我已经读过有关Maven的文章,但实际上我并不了解何时应该使用它。
能给我一些实用的技巧吗?Maven有很多帮助吗?Maven实际上为我的项目做什么?
build.gradle
,其中仅包含一行apply plugin: 'java'
。假设您的源代码位于通常的位置(在其中进行了src/main/java
单元测试src/test/java
),那么您现在可以说出来构建,测试和打包代码gradle build
。简单!
我将开始一个Java项目只是为了练习。我已经读过有关Maven的文章,但实际上我并不了解何时应该使用它。
能给我一些实用的技巧吗?Maven有很多帮助吗?Maven实际上为我的项目做什么?
build.gradle
,其中仅包含一行apply plugin: 'java'
。假设您的源代码位于通常的位置(在其中进行了src/main/java
单元测试src/test/java
),那么您现在可以说出来构建,测试和打包代码gradle build
。简单!
Answers:
它能做什么
Maven是一个“构建管理工具”,它用于定义如何将.java
文件编译为文件.class
,打包为.jar
(.war
或.ear
)文件,使用工具进行(预/后)处理,管理您的文件CLASSPATH
以及所有其他需要执行的任务。建立您的专案。它类似于C / C ++中的Apache Ant或Gradle或Makefiles,但是它试图完全独立,通过合并其他常见任务(如下载和安装必要的库等),您不需要任何其他工具或脚本。
它还围绕“构建可移植性”主题进行设计,因此不会出现问题,因为在一台计算机上使用相同的构建脚本具有相同的代码,而在另一台计算机上却没有(这是已知问题,我们拥有Windows VM 98台计算机,因为我们无法在其他任何地方编译某些Delphi应用程序)。因此,这也是使用不同IDE的人之间进行项目工作的最佳方法,因为很难将IDE生成的Ant脚本导入其他IDE,但是当今所有IDE都理解并支持Maven(IntelliJ,Eclipse和NetBeans)。即使您最终不喜欢Maven,它最终还是所有其他现代构建工具的参考点。
为什么要使用它
关于Maven的三件事非常好。
Maven会(后声明你正在使用哪些)下载所有您所使用的库和这些库,他们会自动使用你。这非常好,并且使处理许多库变得异常容易。这样就可以避免“ dependency hell”。它类似于Apache Ant的Ivy。
它使用“ 约定优于配置 ”,因此默认情况下无需定义要执行的任务。您不需要像在Ant或Makefile中那样必须编写“编译”,“测试”,“包”或“清理”步骤。只需将文件放在Maven期望的位置,就可以立即使用。
Maven的也有很多很好的插件,你可以安装将要处理许多日常任务,从使用JAXB从XSD模式生成的Java类,以测量测试覆盖率用Cobertura。只需将它们添加到您的文件中pom.xml
,它们就会与您想要执行的其他所有操作集成在一起。
最初的学习过程很艰难,但是(几乎)每个专业Java开发人员都使用Maven或希望他们这样做。您应该在每个项目上都使用Maven,但是如果花一些时间来习惯它,也不要感到惊讶,并且有时候您希望自己可以手动做一些事情,因为学习新知识有时会很痛。但是,一旦您真正习惯了Maven,您就会发现构建管理几乎不需要时间。
如何开始
最好的起点是“ 5分钟内的Maven ”。它将使您开始准备一个项目,以便您编写所有必需的文件和文件夹设置(是的,我建议至少至少在开始时使用快速入门原型)。
开始使用后,您将需要更好地了解该工具的预期用途。为此,“ 使用Maven更好地构建 ”是了解其工作原理的最彻底的地方,但是,“ Maven:完整参考 ”是最新的。阅读第一个以进行理解,然后使用第二个作为参考。
这个问题的答案取决于您自己的观点。大多数Maven用户将Maven称为“构建工具”:一种用于从源代码构建可部署工件的工具。建筑工程师和项目经理可能将Maven称为更全面的东西:项目管理工具。有什么区别?诸如Ant之类的构建工具仅专注于预处理,编译,打包,测试和分发。诸如Maven之类的项目管理工具提供了在构建工具中发现的功能的超集。除了提供构建功能之外,Maven还可以运行报告,生成网站并促进工作团队成员之间的沟通。
我强烈建议您查看Sonatype文档,并花一些时间查看可用的插件,以了解Maven的功能。
简而言之,它在(例如)Ant的概念层次上更高。使用Ant,您可以指定要构建的文件和资源集,然后指定希望它们一起震荡的方式,并指定应该在其中进行的顺序(清理/编译/罐装)。使用Maven,这些都是隐式的。Maven希望在特定位置找到您的文件,并将自动使用该文件。因此,使用Maven设置项目可能会简单得多,但是您必须遵循Maven的规则!
Maven
是一个构建工具。伴随着Ant
或者Gradle
是Java
用工具建筑。
如果您是Java的新手,尽管Maven
学习曲线很困难,但只需使用IDE进行构建即可。