了解 Maven并将其用作项目的基础可释放Java生态系统中为 你 提供的大量功能
标签:
通过优锐课java架构学习中,学到了不少干货,整理分享给大家学习。 开始使用最风行的Java构建和依赖打点工具Maven Apache Maven是Java开发的基石,也是Java使用最广泛的构建打点工具。 Maven简化的基于XML的配置模型使开发人员能够快速描述或掌握任何基于Java的项目的轮廓,这使得启动和共享新项目变得很容易。 Maven还撑持测试驱动的开发,恒久项目维护,其声明性配置和广泛的插件使其成为CI / CD的风行选择。 本文是对Apache Maven的快速介绍,包孕Maven POM和目录布局,以及用于构建第一个Maven项目的命令。请注意,撰写本文时最新的Maven版本是Maven 3.6.3。
Maven vs Ant and Gradle尽管Maven是最受欢迎的工具,但它并不是Java生态系统中独一的构建工具。 Ant是较早的基于XML的配置工具,它缺乏Maven的标准化,基于约定的实践和依赖打点,但是确实供给了Maven所没有的灵活性。 Gradle是一种较新的工具,可在Maven生态系统之上运行(使用Maven的存储库),但撑持使用基于Groovy或Kotlin的DSL进行配置。 这三个都是独立的好构建工具,每个都可以集成到CI / CD流程中。 重要的是为你的需求选择合适的,并知道如何正确使用它。
Maven是如何事情的像许多超卓的工具一样,Maven可以将曾颠末于庞大的内容(配置地狱)简化为易于消化的部分。 Maven包罗三个组件:
·POM:描述Maven项目及其依赖项的文件。
·目录:用于描述POM中的Maven项目的标准化格局。
·存储库:存储和发明第三方软件的位置。
Maven POM:每个使用Maven的Java项目在其根目录中都有一个POM(项目东西模型)文件。 pom.xml描述了项目的依赖关系,并报告你如何构建它。 (依赖关系是项目所需的第三方软件。一些常见的示例是JUnit和JDBC。有关所有可用工具和风行依赖关系的列表,请参见Maven中央存储库。)
Maven目录:Maven目录实现了所谓的基于配置的约定,这是对配置地狱的优雅解决方案。 Maven不需要开发人员为每个新项目界说结谈判手动配置组件(makefile和Ant就是这种情况),而是成立了通用的项目布局并供给了描述其事情方法的标准文件格局。你只需插入需求,Maven就会挪用依赖项并为你配置项目。
集中式存储库:最后,Maven使用集中式存储库来发明和颁布作为依赖项的项目包。当你在项目中引用依赖项时,Maven会在集中式存储库中发明它,将其下载到本地存储库,然后将其安置到你的项目中。在大大都情况下,作为开发人员,所有这些都不偏见。
访谒Maven依赖项
默认情况下,Maven从Maven中央存储库解析依赖关系。一个常见的替代方案是JCenter,它具有更多可用软件包集。组织还颁布和托管内部存储库,这些存储库可以是大众的或私有的。为了访谒存储库,你可以在Maven POM中指定其URL,也可以指示Maven在其他存储库中查找。
安置Maven Maven是一个Java项目,因此在安置它之前,需要在开发环境中安置JDK。 (有关下载和安置JDK的更多信息,请参见“什么是JDK?Java开发工具包简介”。)设置Java开发环境后,只需几个法式即可安置Maven:
1.下载最新的Maven版本(截至撰写本文时,Maven 3.6.3)。
2.将apache.maven.zip文件解压缩到便利的位置。
3.将该文件放在路径上。 例如,在Unix或Linux系统上:export PATH = $ PATH:/ home / maven /。
你此刻应该可以访谒mvn命令了。 键入mvn -v以确保已告成安置Maven。
Maven POM每个Maven项目的根目录都是pom.xml文件。 尽管XML以其乏味而著称,但在此用例中,XML实际上效果很好。 Maven的POM易于阅读,并揭示了项目中正在产生的许多工作。 (如果你使用过JavaScript,则pom.xml的用途类似于Node NPM的package.json文件。)
清单1显示了一个非常简单的Maven pom.xml。
清单1.简单的Maven POM1 <?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 "> 2 3 <modelVersion>4.0.0</modelVersion> 4 5 <groupId>com.javaworld</groupId> 6 7 <artifactId>what-is-maven</artifactId> 8 9 <version>1.0-SNAPSHOT</version> 10 11 <name>Simple Maven Project</name> 12 13 <packaging>jar</packaging> 14 15 16 17 <dependencies> 18 19 <dependency> 20 21 <groupId>junit</groupId> 22 23 <artifactId>junit</artifactId> 24 25 <version>4.12</version> 26 27 <scope>test</scope> 28 29 </dependency> 30 31 </dependencies></project>
了解Maven POM 一旦掌握了它,POM就不会神秘了。 首先,你可以浏览XML序言,该序言仅引用正式的POM模式。 但是请注意XML以modelVersion开头。 这报告Maven使用什么版本的POM,在本例中为Maven POM 4.0.0。 接下来,你有groupId,artifactId和version。 这三个属性一起独一地标识了存储库中每个Maven打点的资源。 文件顶部的这些属性描述了你的Maven项目。 此刻,看看POM的依赖项部分,我们在此中描述项目的依赖项。 在这种情况下,到目前为止,我们仅引入了一种依赖关系,即JUnit。 请注意,JUnit也按照其groupId,,artifactId和版本进行描述。温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/29898.html