搜档网
当前位置:搜档网 › Java的项目构建工具Maven的使用教程

Java的项目构建工具Maven的使用教程

Java的项目构建工具Maven的使用教程
Java的项目构建工具Maven的使用教程

Java的项目构建工具Maven的使用教程

Java的项目构建工具Maven的使用教程

一、Maven是什么

二、安装Maven

安装maven非常简单,访问Maven官方页下载即可:

https://www.sodocs.net/doc/a03035105.html,/download.cgi

下载完后配置M2_HOME环境变量,然后终端运行mvn--version,看到正确的输出提示,Maven就安装完成了。

三、Maven基本概念

Maven的核心思想是POM,即ProjectObjectModel(项目对象模型)。POM文件是以XML文件的形式描述一个Maven项目所用到的资源(源码、依赖、测试等)。下图描述了POM文件的结构,以及Maven是如何调用POM文件的。

当执行一条Maven命令时,会传入一个pom文件,Maven会在该pom里面的描述的资源上执行

POM文件:

4.0.0................................................... .................................

modelVersion是POM模型版本,4.0.0支持Maven2和3

MavenCoordinates(Maven坐标)

(1)groupId:它是一个组织或者项目的唯一ID,大多数情况下会使用项目的java包的根名作为groupID,例如com.pastqing

(2)artifactId:它是正在构建的项目名称,例如一个支付系统artifactId是web-pay。artifactId是Maven仓库中groupId目录下的子目录名

(3)version:顾名思义项目发行的版本号

以上三项都是构建结果名称的一部分,在项目构建后会生成一个jar包,位于Maven仓库的路径就是

MAVEN_REPO/com/pastqing/web-pay/1.0/web-pay-1.0.jar

四、一个用Maven构建的HelloWorldjava项目

利用Maven插件archetype构建一个项目:

在终端中打开工作目录

运行命令:

mvnarchetype:generate

,第一次运行时比较慢,原因是第一次需要从Maven中央仓库中下载相关项目原型。下载完毕后,会选择项目模型,以及输入groupId,artifactId,version等,构建完毕后会有成功提示。

打包项目:切换到项目根目录,运行mvnpackage。打包成功之后,项目会生成一个target文件夹,里面有生成好的jar文件和class文件。

运行jar文件:

java-cptarget/helloWorld-1.0-

SNAPSHOT.jarcom.pastqing.App

至此一个最简单Maven构建的java项目就完成了。

五、一个用Maven构建的java-web项目

生成一个web项目与生成java项目基本类似,只是用的模型不同而已。这里不再阐述。下面我们具体说说如何使用Tomcat或者jetty插件运行web项目。这里我们以tomcat举例。

MavenTomcat插件安装:https://www.sodocs.net/doc/a03035105.html,/maven-plugin-2.2/

我们将如下插件信息加入到web项目中的'POM文件中

org.apache.tomcat.maventomcat6-maven-

plugin2.2org.apache.tomcat.maventomcat7-maven-plugin2.2

这样我们集成了这个tomcat的Maven插件,只需要一个命令就

可以部署、启动服务了。命令如下:

mvntomcat:run

(tomcat6)

mvntomcat7:run

(tomcat7)

使用tomcatMaven插件自动部署到外部tomcat

以上自动部署,会使用Maven内嵌的Tomcat,下面我们修改POM 文件,让项目部署到外部的Tomcat中。

修改项目POM文件,添加服务器配置信息

org.apache.tomcat.maventomcat7-maven-

plugin2.2http://localhost:8080/manager/texttomcat7adminadmi

n

其中server,username,password的值与%Maven_HOME中的setting.xml中的server,username,password一一对应。

启动外部tomcat,运行命令mvntomcat7:redeploy

六、如何用Maven构建多模块项目

1.父POM

所有的Mavenpom文件都继承自一个父POM,如果没有指定父pom,则该pom文件继承自根POM。pom文件的集成关系如下图所示:

可以让一个pom文件显式地继承另一个pom文件。这样,可以通过修改公共父pom文件的设置来修改所有子pom文件的设置。这里

我们使用parent标签来定义父pom。下面我们具体搭建一个多模块Mavne项目

2.构建项目目录结构

我们创建一个maven-web项目,名字叫EducationCloud,接下来

我们在项目目录下创建几个文件夹用来划分我们的模块。它们分别

是Education-parent(父模块),Education-core(业

务),Education-entity(实体),Education-web(web服务)

目录的划分可以根据需要进行,我的划分如上

3.修改pom文件

我们用module标签来进行划分模块。打开根目录下的pom文件,添加moudle标签。

<"1.0"encoding="UTF-

8">https://www.sodocs.net/doc/a03035105.html,cationCloudEducationCloud1.0-SNAPSHOTpomEducation-parentEducation-coreEducation-entityEducation-webEducationCloud

这里我们说下packaging标签:最常见的就是打包为jar,war 了。任何一个Maven项目都需要定义pom文件中的packaging元素,如果不声明该元素,则默认打包为jar,如果定义值为war那么就

打包为war包。如果值为pom,那么什么包都不生成(通常用于父

模块)。

给各个模块添加parent标签:

parent标签用来定义父POM的坐标位置的,定义如下:

https://www.sodocs.net/doc/a03035105.html,cationCloudEducationCloud-parent1.0-SNAPSHOT

groupId,aritfactId,version是常规表示父pom位置信息的元素,relativePath是表示父pom位置的相对路径,默认

为../pom.xml,这里需要注意的是groupId,aritfactId,version必须与父pom文件中的对应起来

使用dependencyManagement管理项目所有依赖

为了统一管理依赖,我们在父项目模块的pom文件中使用dependencyManagement来声明项目的所有依赖,这样在其他的子项目中引用依赖时就可以省略版本号的编写,修改起来也很容易。

编写**父项目模块**educationCloud-parent的pom文件,添加如下:

使用pluginManagement管理项目中的Maven插件

为了统一管理项目中的Maven插件,如Maven编译插件,打包插件等及其配置信息,在父项目pom文件中添加pluginManagement来管理,这样在所有子模块中引用的插件都会统一处理,添加如下:

org.apache.maven.pluginsmaven-complier-

plugin3.31.71.7UTF-8

上面我们添加了maven编译插件的配置,用jdk1.7编译,保存后我们可以在各个子模块的Effectivepom中看到相应的修改。

使用properties标签定义常量:

我们将各个依赖的版本号定义为不同的常量,这样方便以后的修改:

1.73.1.05.1.344.12UTF-8

引用时用${jdkVersion}的形式引用即可。

注,以上操作均可在IDE中操作,更加方便简单。

相关主题