gpt4 book ai didi

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

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 25 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章Java的项目构建工具Maven的配置和使用教程由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

1、Maven是什么 。

Maven是一个用java开发的项目构建工具, 它能使项目构建过程中的编译、测试、发布、文档自动化, 大大减轻了程序员部署负担.

2、安装Maven 。

安装maven非常简单,访问Maven官方页下载即可:http://maven.apache.org/download.cgi 下载完后配置M2_HOME环境变量, 然后终端运行mvn --version, 看到正确的输出提示,Maven就安装完成了.

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

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

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

POM文件:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
< 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
            http://maven.apache.org/xsd/maven-4.0.0.xsd">
  < modelVersion >4.0.0</ modelVersion >
  <!-- The Basics -->
  < groupId >...</ groupId >
  < artifactId >...</ artifactId >
  < version >...</ version >
  < packaging >...</ packaging >
  < dependencies >...</ dependencies >
  < parent >...</ parent >
  < dependencyManagement >...</ dependencyManagement >
  < modules >...</ modules >
  < properties >...</ properties >
  <!-- Build Settings -->
  < build >...</ build >
  < reporting >...</ reporting >
  <!-- More Project Information -->
  < name >...</ name >
  < description >...</ description >
  < url >...</ url >
  < inceptionYear >...</ inceptionYear >
  < licenses >...</ licenses >
  < organization >...</ organization >
  < developers >...</ developers >
  < contributors >...</ contributors >
  <!-- Environment Settings -->
  < issueManagement >...</ issueManagement >
  < ciManagement >...</ ciManagement >
  < mailingLists >...</ mailingLists >
  < scm >...</ scm >
  < prerequisites >...</ prerequisites >
  < repositories >...</ repositories >
  < pluginRepositories >...</ pluginRepositories >
  < distributionManagement >...</ distributionManagement >
  < profiles >...</ profiles >
</ project >

modelVersion是POM模型版本, 4.0.0支持Maven2和3 Maven Coordinates(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 。

4、一个用Maven构建的Hello World java项目 。

利用Maven插件archetype构建一个项目: 在终端中打开工作目录 运行命令:

?
1
mvn archetype:generate

, 第一次运行时比较慢,原因是第一次需要从Maven中央仓库中下载相关项目原型。下载完毕后,会选择项目模型,以及输入groupId, artifactId,version等,构建完毕后会有成功提示。 打包项目:切换到项目根目录,运行mvn package。打包成功之后,项目会生成一个target文件夹,里面有生成好的jar文件和class文件。 运行jar文件:

?
1
java - cp target /helloWorld-1 .0-SNAPSHOT.jar com.pastqing.App

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

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

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

Maven Tomcat插件安装:  http://tomcat.apache.org/maven-plugin-2.2/  我们将如下插件信息加入到web项目中的POM文件中 。

?
1
2
3
4
5
6
7
8
9
10
< plugin >
   < groupId >org.apache.tomcat.maven</ groupId >
   < artifactId >tomcat6-maven-plugin</ artifactId >
   < version >2.2</ version >
</ plugin >
< plugin >
   < groupId >org.apache.tomcat.maven</ groupId >
   < artifactId >tomcat7-maven-plugin</ artifactId >
   < version >2.2</ version >
</ plugin >

这样我们集成了这个tomcat的Maven插件, 只需要一个命令就可以部署、启动服务了。命令如下:

?
1
mvn tomcat:run

(tomcat6) 。

?
1
mvn tomcat7:run

(tomcat7) 。

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

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

?
1
2
3
4
5
6
7
8
9
10
11
< plugin >
< groupId >org.apache.tomcat.maven</ groupId >
< artifactId >tomcat7-maven-plugin</ artifactId >
< version >2.2</ version >
< configuration >
   < url >http://localhost:8080/manager/text</ url >
   < server >tomcat7</ server >
   < username >admin</ username >
   < password >admin</ password >
</ configuration >
</ plugin >

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

启动外部tomcat, 运行命令mvn tomcat7:redeploy 。

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

1.父POM 。

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

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

可以让一个pom文件显式地继承另一个pom文件。这样,可以通过修改公共父pom文件的设置来修改所有子pom文件的设置。这里我们使用parent标签来定义父pom。下面我们具体搭建一个多模块Mavne项目 。

2.构建项目目录结构 。

我们创建一个maven-web项目, 名字叫EducationCloud, 接下来我们在项目目录下创建几个文件夹用来划分我们的模块。它们分别是Education-parent(父模块), Education-core(业务), Education-entity(实体), Education-web(web服务) 。

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

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

3.修改pom文件 。

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<? 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 http://maven.apache.org/xsd/maven-4.0.0.xsd" >
   < modelVersion >4.0.0</ modelVersion >
   < groupId >com.EducationCloud</ groupId >
   < artifactId >EducationCloud</ artifactId >
   < version >1.0-SNAPSHOT</ version >
   < packaging >pom</ packaging >
   < modules >
     < module >Education-parent</ module >
     < module >Education-core</ module >
     < module >Education-entity</ module >
     < module >Education-web</ module >
   </ modules >
   < name >EducationCloud</ name >
</ project >

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

给各个模块添加parent标签: parent标签用来定义父POM的坐标位置的, 定义如下:

?
1
2
3
4
5
6
< parent >
   < groupId >com.EducationCloud</ groupId >
   < artifactId >EducationCloud-parent</ artifactId >
   < version >1.0-SNAPSHOT</ version >
   < relativePath ></ relativePath >
</ parent >

groupId, aritfactId, version是常规表示父pom位置信息的元素, relativePath是表示父pom位置的相对路径, 默认为../pom.xml, 这里需要注意的是groupId, aritfactId, version必须与父pom文件中的对应起来 。

使用dependencyManagement管理项目所有依赖 为了统一管理依赖,我们在父项目模块的pom文件中使用dependencyManagement来声明项目的所有依赖, 这样在其他的子项目中引用依赖时就可以省略版本号的编写, 修改起来也很容易。 编写**父项目模块**educationCloud-parent的pom文件, 添加如下: 使用pluginManagement管理项目中的Maven插件 为了统一管理项目中的Maven插件, 如Maven编译插件, 打包插件等及其配置信息, 在父项目 pom文件中添加pluginManagement来管理, 这样在所有子模块中引用的插件都会统一处理, 添加如下

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
< pluginManagement >
   < plugins >
   <!-- complile插件的配置 -->
     < plugin >
       < groupId >org.apache.maven.plugins</ groupId >
       < artifactId >maven-complier-plugin</ artifactId >
       < version >3.3</ version >
       < configuration >
         < source >1.7</ source >
         < target >1.7</ target >
         < encoding >UTF-8</ encoding >
       </ configuration >
     < plugin >
   </ plugins >
</ pluginManagement >

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

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

?
1
2
3
4
5
6
7
< properties >
   < jdkVersion >1.7</ jdkVersion >
   < servletVersion >3.1.0</ servletVersion >
   < mysqlVersion >5.1.34</ mysqlVersion >
   < junitVersion >4.12</ junitVersion >
   < defaultEncoding >UTF-8</ defaultEncoding >
</ properties >

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

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

最后此篇关于Java的项目构建工具Maven的配置和使用教程的文章就讲到这里了,如果你想了解更多关于Java的项目构建工具Maven的配置和使用教程的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com