本文章将简述ApacheMaven的配置、命令、POM文件和Maven生命周期。
ApacheMaven是一个构建,或称项目管理工具,相比其前身(例如ANTforJava构建版),具有以下优势:
当构建需要多个JAR文件时很有用
在构建期间解决递归依赖性
创建标准化的项目结构
构建,发布和部署应用程序
支持应用程序的生命周期以及插件
我创建了一个校友项目,这是一个动态的Web存档,其中有一个Servlet,上面写着“Hello,Alumni”。
要求配置:
ApacheMaven3.2.5
ApacheTomcat8.0.9
JDK1.7.0/JRE1.7.0
Notepad++6.6.7
Maven基础教程
1.设置Maven
首先,下载ApacheMaven3.2.5。
接下来,设置M2和M2_HOME的路径变量。
将M2_HOME环境变量设置为指向ApacheMaven安装的根目录。此外,M2环境变量将指向ApacheMaven下的bin文件夹。例如,如果您在d:\apache-maven-3.2.5下安装了ApacheMaven,则必须将变量设置如下:
设置M2_HOME=d:\apache-maven-3.2.5
设置M2=d:\apache-maven-3.2.5\bin
您还必须在路径中另外设置Maven,如下所示。
设置PATH=%PATH%;%M2%
2.配置Maven(创建项目)
现在从要创建Web项目的位置运行mvnarchetype:在想创造程序的地方生成命令。从此命令开始,从网上下载所有模板。必须先利用它,以便可以将所有已知的项目模板下载到本地系统。它将在成功执行此命令的同时提示您输入数字。输入数字529,用于'maven-archetype-webapp'。确保您有Internet连接-否则,您将看不到所有原型列表。MavenArchetype是一个与Maven一起提供的模板工具包。
3.创建校友Servlet
在我们编写JavaServlet代码之前,我们需要在'src\main'下添加一个'java'文件夹。在main下,添加文件夹'me',然后是'sumithpuri',后跟'maven'-逐次下降;这样的目录结构如下所示:
现在,使用Notepad++编写javaservlet源文件AlumniServlet.java,如下所示:
4. 建立校友项目
复制代码
如果我们现在尝试使用'mvncompiler:compile'构建项目,我们将得到以下错误,因为我们没有为JavaServlets添加依赖的JAR文件。
5.管理依赖项
我们可以添加依赖的JAR,以便项目可以编译。我们可以在pom.xml中这样做-有关Maven如何将此JAR下载到本地存储库的说明以及POM(项目对象模型)的详细信息将在后文中提及。
6.(重新)建立/编制校友项目
使用'mvncompiler:compile'编译Web应用程序。
7.包装和部署校友项目
使用以下配置修改web.xml以添加Servlet。
使用'mvnwar:war'打包Web应用程序。
最后,将其放在ApacheTomcat'webapps'文件夹下,然后键入URL以在浏览器上查看输出:
注意:确保将默认index.jsp重命名为index.bkp以呈现Servlet输出。
结论
Maven提供了一种简单且可扩展的方法来编译,构建和部署应用程序,并允许我们管理应用程序的总体构建生命周期。
Maven理论
Maven坐标
以下称为任何项目的maven坐标(最重要的坐标)。
GroupId:我们可以用来引用这些项目组的名称。例如:alumni_project
ArtifactId:将用于创建JAR或WAR的名称。例如:校友
版本:当前项目的版本号
包:生成的类的包,通常在src\java下。例如:me.sumithpuri.maven
Maven生命周期
Maven项目最重要的生命周期阶段或阶段包括以下内容。
验证:验证项目坐标和pom.xml是否有效,否则会生成错误。
编译:编译项目并在无法编译时生成错误。
测试:单元测试代码,不要求代码打包。
包:包并生成工件,例如JAR。
安装:在本地存储库中安装生成的工件,例如JAR。
Maven插件
Maven以插件的形式工作,遵循以下通用格式:mvnplugin:goal
一些插件有JAR,编译器和surefire。Maven命令的示例如下:mvncompiler:compile。
Maven存储库(架构)
Maven遵循双存储库模型,其中它维护一个本地存储库(在执行第一个maven命令时创建)。它将依赖关系从远程存储库下载到此本地存储库,然后构建项目。该体系结构如下所示:
Maven项目已编制完成;它在本地存储库中检查依赖项。
如果不存在依赖项,Maven将从远程存储库下载它们。
下载依赖项后,它们将安装在本地存储库中。
一旦满足所有依赖关系,Maven就会编译代码和项目。
项目对象模型
Maven通过在每个模块中存在ProjectObjectModel或pom.xml文件来实现依赖关系管理。在每个模块级别,我们都可以提供一个pom.xml,其中包含构建环境信息,构建设置信息,POM之间的依赖关系以及一般项目信息。此外,还有一个继承概念和有效POM的概念(其中有效POM是继承层次结构的结果)。
样品POM
超级项目对象模型
位于Maven安装内部的是一个SuperPOM(pom.xml),通常位于maven-model-builder-<x.y.z>.jar文件中,它位于%M2_HOME%\lib\文件夹下。其中包含所有其他模块的POM继承的详细信息。这还包含远程存储库的位置,默认情况下为https://repo.maven.apache.org/maven2。它通常有四个主要部分-中央存储库详细信息,插件存储库详细信息,构建详细信息和插件管理详细信息。