
Apache Maven 是Java开发者的重要工具。可以让Java开发者使用标准的目录结构来更快地创建Java项目,还可以帮助Java开发者自动下载项目依赖,让工作更加轻松。不仅如此,Maven还可以自动下载传递依赖,帮助Java开发者从极端复杂的依赖关系中解脱出来。
如果你的应用依赖 Spring 框架,但 Spring 又依赖 Log4j,如果没有 maven,你还需要为 Spring 下载正确版本的 Log4j,而 Maven 会为你自动搞定这一切。
Maven 还是一个构建工具,可以帮助你构建项目、将项目上传到中央或本地 nexus 仓库,并自动在各种环境中发布使用。
简而言之,对于任何专业的 Java 开发者来说,了解 Maven 知识是必须的。在本文中,我将分享一些每个 Java 开发者都应该知道的 Maven 知识点。这些知识将帮助你充分利用 Maven、简化你的日常开发任务,例如项目的编译、单元测试、部署、回归测试以及其他许多任务。
Maven是一种构建工具,就像ANT,用于在Java环境中创建可交付的JAR,WAR和EAR文件 .Maven和ANT之间有很多差异[1],Maven使用约定大于配置原则,所需的配置很少,很容易使用。
使用Maven构建Java应用的主要优点是依赖关系管理
Java应用往往都依赖许多拥有不同版本的内部和外部开源库,通过Maven仓库来存储这些开源库所有版本的jar包,并让每个开发者在使用Maven构建他们的应用时自动导入就十分有意义。 Maven自己便维护着最著名的全局仓库,比如: https://repo1.maven.org/
Maven还可以管理传递依赖(transitive dependencies)
当你将Spring框架作为依赖项包含在项目中时,这意味着你不需要下载Spring所依赖的所有库。Maven将为你下载这些JAR包,并维护正确的版本,这是一个非常棒的功能,可以节省构建环境需要的大量时间,同时避免由于不正确的版本依赖,造成的诸如UnSupportedClassVersionError[2]和NoClassDefFoundError[3]之类的错误。
为了使用Maven,需要在你的计算机中安装Apache Maven并配置settings.xml
其中需要包含本地仓库名称和详细的连接配置。可以按照本指南中的步骤在Windows 8机器中安装Maven。
如果你用的是Eclipse,那你可以使用M2Eclipse Maven插件
这个插件使你能够从Eclipse创建,修改和运行maven项目。可以从Eclipse Marketplace下载并安装M2E Eclipse插件。如果你在Eclipse IDE中使用Maven,请参阅Eclipse Java开发者的3 Maven Tips了解更多。
如果你用的是IntelliJ IDEA,那么只能说你太棒了,IDEA对Maven的支持更完美,好像并没有罗嗦的必要 :)
一旦在本地机器上安装并配置了Maven,就可以创建Maven项目
Maven项目强制使用标准目录来组织源代码,资源和测试类。按照约定进行管理,这意味着所有Java类都将放到src/main/java文件夹,所有测试类都将放到src/main/test文件夹。请参阅Maven Essentials了解有关Maven约定的更多配置。
Maven中另一个要点是pom.xml,这类似于ANT构建工具的build.xml
对于每个项目,都有自己的pom.xml来表示Project对象模型。pom.xml中包含项目详细信息(例如 artifactId,groupId,name等)、用于创建可交付的JAR文件,并可用于在内部的maven存储库中上传JAR。pom.xml还包含项目中使用的Maven插件。 JAR插件负责从类文件和资源创建JAR文件。pom.xml还包含项目的依赖关系(例如JAR文件及其版本)。
你可以从命令行或Eclipse里构建和运行Maven项目
类似于ANT的Task,Maven有Goal,你可以通过使用命令行中的mvn命令调用它们来运行这些Goal。为了从命令行构建和运行maven项目,你需要将包含Maven二进制文件的路径(MAVEN_HOME/bin)配置到PATH环境变量中。如果你安装了M2Eclipse插件,那么你可以直接执行mvn clean或是mvn install。
clean和install是两个经常使用的Maven Goal。
10.当你使用 Maven 构建项目时,它将创建类文件,并向目标目录(target)中复制资源
如果你使用 Eclipse,那么你还可以使用 M2Elcipse 插件构建你的 Maven 项目,只需右键单击并选择 Maven Install 或 Maven Build 选项,如下图所示:

Maven install 命令同时运行 maven clean 和 maven build。
Maven clean 将从 target 目录清理旧的构建物,例如 class 文件。
现如今 Gradle(一种用 groovy 编写的构建工具)也被越来越多的开发者选用,但 Maven 仍然是 Java 项目最受欢迎的构建工具。Gradle 使用特定的 Groovy DSL 来编写构建脚本,有一定地学习曲线,需要花费更多的时间来学习。而 Maven 使用 XML,任何人都可以了解构建过程和依赖关系。
本文转载自公众号贝壳产品技术(ID:gh_9afeb423f390)。
原文链接:
https://mp.weixin.qq.com/s/yEvm9eiO7gxG7j2YR_2nQw
评论