maven基础知识学习及插件的使用.docx
- 文档编号:14434936
- 上传时间:2023-04-23
- 格式:DOCX
- 页数:130
- 大小:181.34KB
maven基础知识学习及插件的使用.docx
《maven基础知识学习及插件的使用.docx》由会员分享,可在线阅读,更多相关《maven基础知识学习及插件的使用.docx(130页珍藏版)》请在冰豆网上搜索。
maven基础知识学习及插件的使用
转自:
https:
//ayayui.gitbooks.io/tutorialspoint-maven/content/book/maven_overview.html5
Maven-概述5
Maven是什么?
5
Maven的历史5
Maven的目标5
约定优先于配置6
Maven-环境搭建6
系统要求6
第1步:
验证Java是否安装6
第2步:
配置JAVA环境7
第3步:
下载Maven安装文件8
第4步:
解压Maven安装文件8
第5步:
设置Maven的环境变量8
第6步:
添加Maven的bin目录到系统路径9
第7步:
验证Maven是否正确安装9
Maven-POM10
POM示例10
SuperPOM11
Maven-构建生命周期40
什么是构建生命周期?
41
Clean生命周期41
默认生命周期(或构建生命周期)45
Site生命周期51
Maven-构建配置文件55
什么是构建配置文件?
55
构建配置文件的类型56
配置文件激活56
配置文件激活示例56
显式配置文件激活57
通过Maven设置激活配置文件61
通过环境变量激活配置文件62
通过操作系统激活配置文件62
通过文件的存在或者缺失激活配置文件63
Maven-仓库64
什么是Maven仓库?
64
本地仓库64
中央仓库65
远程仓库65
Maven依赖搜索顺序66
Maven-插件67
什么是Maven插件?
67
插件类型67
示例68
Maven-创建项目71
Maven-构建和测试项目76
添加Java源文件79
Maven-外部依赖80
Maven-项目文档83
Maven-项目模板86
什么是Archetype?
86
使用项目模板86
创建好的项目89
创建好的POM.xml文件90
创建好的App.java文件91
创建好的AppTest.java文件92
Maven-快照93
什么是快照?
94
项目快照vs版本94
app-ui项目的pom.xml文件94
data-service项目的pom.xml文件95
Maven-自动化构建97
示例97
使用Maven99
将持续集成用于Maven103
Maven-管理依赖103
可传递性依赖发现103
依赖作用域(DependencyScope)104
依赖管理(DependencyManagement)104
Maven-自动化部署109
问题说明110
解决方法110
修改项目的POM.xml110
MavenRelease插件112
Maven-Web应用113
创建Web应用113
POM.xml文件115
构建Web应用116
部署Web应用118
测试Web应用118
转自:
https:
//ayayui.gitbooks.io/tutorialspoint-maven/content/book/maven_overview.html
Maven-概述
Maven是什么?
Maven是一种项目管理和理解工具。
Maven向开发者提供了一个完整的构建生命周期框架。
开发团队几乎不用花时间就可以使用自动化构建项目的基础框架,因为Maven使用了一套标准的目录结构和默认的构建生命周期。
在存在多个开发团队的场景中,Maven可以在很短的时间内按标准建立起工作方式。
因为大多数的项目配置简单并且可重用,Maven简化了开发者在创建报告,检查,构建和测试自动化配置中的工作。
Maven提供给开发者管理如下过程的方法:
∙项目构建(Builds)
∙文档(Documentation)
∙报告(Reporting)
∙项目依赖(Dependencies)
∙软件配置管理(SCMs)
∙发布(Releases)
∙分发(Distribution)
∙邮件列表(mailinglist)
总的来说,Maven简化和统一了项目构建的过程。
它无缝地处理项目编译,分发,文档,团队合作和其他任务,增加了任务处理的重用性,并可以处理大多数构建相关的任务。
Maven的历史
Maven最初是在JakartaTurbine项目中设计出来,用作简化项目构建步骤。
这个项目有若干子项目并且每个项目包含的ANT构建文件只有些许的差别。
项目中JAR包那时是检入到CVS中。
然后Apache组织开发了Maven ,它可以把多个项目一起构建,发布多项目信息,完成多项目部署,在多项目间共享JAR包并且帮助团队间一起合作。
Maven的目标
Maven主要的目标是提供给开发者
∙一种综合全面的模型,对项目来说可以重用,易于维护并且更容易理解
∙可以与这种声明式模型相互作用的插件或者工具
Maven项目结构和内容声明在一个xml文件中——pom.xml,称之为项目对象模型(POM)。
它是整个Maven系统的基本单元。
更多信息参考 MavenPOM 章节。
约定优先于配置
Maven使用约定优先于配置,这意味着开发者不用自己创建构建流程。
开发者不需要指明每一个配置详情。
Maven为项目提供了合理的默认行为。
当创建一个Maven项目时,Maven会创建默认的项目结构。
开发者只需要按照对应地放置文件,而不需要在pom.xml文件中做任何配置。
举个例子,假设${basedir}表示项目路径,下面的表格展示了项目源码文件目录、资源文件目录和其他配置的默认值:
Item
Default
sourcecode
${basedir}/src/main/java
resources
${basedir}/src/main/resources
Tests
${basedir}/src/test
Compliedbytecode
${basedir}/target
distributableJAR
${basedir}/target/classes
为了构建项目,Maven提供给开发者指明生命周期目标和项目依赖(依靠Maven的插件功能和默认约定实现)的选项。
有大量的项目管理和构建相关的任务是由Maven插件维护的。
Maven-环境搭建
Maven是基于Java的工具,所以首要必须的要求是你的电脑上安装有JDK。
系统要求
JDK
1.5版本或更高。
内存
无最小要求。
硬盘空间
无最小要求。
操作系统
无最小要求。
第1步:
验证Java是否安装
操作系统
操作
命令
Windows
打开命令提示符
c:
>java-version
Linux
打开命令终端
$java-version
Mac
打开终端
machine:
~joseph$java-version
让我们来验证下各个操作系统的输出:
操作系统
输出
Windows
javaversion"1.6.0_21"
Java(TM)SERuntimeEnvironment(build1.6.0_21-b07)
JavaHotSpot(TM)ClientVM(build17.0-b17,mixedmode,sharing)
Linux
javaversion"1.6.0_21"
Java(TM)SERuntimeEnvironment(build1.6.0_21-b07)
JavaHotSpot(TM)ClientVM(build17.0-b17,mixedmode,sharing)
Mac
javaversion"1.6.0_21"
Java(TM)SERuntimeEnvironment(build1.6.0_21-b07)
JavaHotSpot(TM)64-BitServerVM(build17.0-b17,mixedmode,sharing)
如果你没有安装Java,请从 安装JDK。
在此教程中我们假设安装的是Java1.6.0_21版本。
第2步:
配置JAVA环境
设置 JAVA_HOME 环境变量指向你电脑中Java的安装根目录。
示例如下:
操作系统
输出
Windows
设置环境变量JAVA_HOME为C:
\ProgramFiles\Java\jdk1.6.0_21
Linux
exportJAVA_HOME=/usr/local/java-current
Mac
exportJAVA_HOME=/Library/Java/Home
将Java编译器路径添加到系统路径。
操作系统
操作
Windows
在系统变量Path后添加字符串;C:
\ProgramFiles\Java\jdk1.6.0_21\bin
Linux
exportPATH=$PATH:
$JAVA_HOME/bin/
Mac
不需要
使用上面提到的java-version 命令验证Java安装。
第3步:
下载Maven安装文件
从http:
//maven.apache.org/download.html下载Maven2.2.1。
操作系统
文件名
Windows
apache-maven-2.2.1-bin.zip
Linux
apache-maven-2.2.1-bin.tar.gz
Mac
apache-maven-2.2.1-bin.tar.gz
第4步:
解压Maven安装文件
解压Maven的安装文件到你想要的目录。
在此过程中,子目录apache-maven-2.2.1将会被创建。
操作系统
路径(根据你的安装方式会有所不同)
Windows
C:
\ProgramFiles\ApacheSoftwareFoundation\apache-maven-2.2.1
Linux
/usr/local/apache-maven
Mac
/usr/local/apache-maven
第5步:
设置Maven的环境变量
向环境变量中添加M2_HOME,M2,MAVEN_OPTS变量.
操作系统
路径(根据你的安装方式会有所不同)
Windows
使用系统属性设置环境变量。
M2_HOME=C:
\ProgramFiles\ApacheSoftwareFoundation\apache-maven-2.2.1
M2=%M2_HOME%\bin
MAVEN_OPTS=-Xms256m-Xmx512m
Linux
打开命令终端设置环境变量。
exportM2_HOME=/usr/local/apache-maven/apache-maven-2.2.1
exportM2=$M2_HOME/bin
exportMAVEN_OPTS=-Xms256m-Xmx512m
Mac
打开命令终端设置环境变量。
exportM2_HOME=/usr/local/apache-maven/apache-maven-2.2.1
exportM2=$M2_HOME/bin
exportMAVEN_OPTS=-Xms256m-Xmx512m
第6步:
添加Maven的bin目录到系统路径
现在添加变量M2到系统目录中
操作系统
操作
Windows
在系统变量Path后添加字符串;%M2%
Linux
exportPATH=$M2:
$PATH
Mac
exportPATH=$M2:
$PATH
第7步:
验证Maven是否正确安装
现在打开终端命令行,然后执行下面的mvn命令。
操作系统
操作
命令
Windows
打开命令提示符
c:
>mvn--version
Linux
打开命令终端
$mvn--version
Mac
打开终端
machine:
~joseph$mvn--version
最后来验证上述命令的输出,内容应该如下:
操作系统
输出
Windows
ApacheMaven2.2.1(r801777;2009-08-0700:
46:
01+0530)
Javaversion:
1.6.0_21
Javahome:
C:
\ProgramFiles\Java\jdk1.6.0_21\jre
Linux
ApacheMaven2.2.1(r801777;2009-08-0700:
46:
01+0530)
Javaversion:
1.6.0_21
Javahome:
C:
\ProgramFiles\Java\jdk1.6.0_21\jre
Mac
ApacheMaven2.2.1(r801777;2009-08-0700:
46:
01+0530)
Javaversion:
1.6.0_21
Javahome:
C:
\ProgramFiles\Java\jdk1.6.0_21\jre
Maven-POM
POM意为项目对象模型(ProjectObjectModel),是Maven中基本单元。
它是一个名为pom.xml的XML文件,总是存在于项目的更目录下。
POM包含了项目相关的信息和Maven用来构建一个或多个项目的各种配置详情。
POM也包含了各种目标操作(goal)和插件。
当执行一个任务或者目标操作时,Maven会查找当前目录下的POM。
Maven读取POM,从中获得需要的配置信息,然后执行目标操作。
部分Maven可以从POM中明确的配置列出如下:
∙项目依赖(projectdependencies)
∙插件(plugins)
∙目标操作(goals)
∙构建(buildprofiles)
∙项目版本(projectversion)
∙开发者(developers)
∙邮件列表(mailinglist)
在创建一个POM之前,我们首先应该决定项目组织(groupId),项目命名(artifactId)和项目版本,因为这些属性信息可以帮助我们在项目仓库中唯一确定一个项目。
POM示例
//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"> 要注意的是每个项目需要有唯一的POM文件。 ∙所有的POM文件要求有projec节点和三个必须字段: groupId,artifactId,version。 ∙在仓库中项目的标识为groupId: artifactId: version。 ∙POM.xml的根节点是project并且其下有三个主要的子节点: 节点 描述 groupId 项目组织的Id。 通常在一个项目或者一个组织之中,这个Id是唯一的。 例如,某个Id为pany.bank的银行组织包含所有银行相关的项目。 artifactId 项目的Id,通常是项目的名字。 例如,consumer-banking。 artifactId与groupId一起定义了仓库中项目构件的路径。 version 项目的版本。 它与groupId一起,在项目构件仓库中用作区分不同的版本,例如: pany.bank: consumer-banking: 1.0 pany.bank: consumer-banking: 1.1. SuperPOM 所有的POM都继承一个父类POM(不管是显示定义继承的还是没有显示定义的)。 这个基础的POM被称为超类POM(SuperPOM) ,它包含了POM默认继承的属性值。 Maven使用有效的POM(effectivepom,其配置来源于超类POM加上项目配置)来执行相关的目标操作。 这能帮助开发者在他/她的pom.xml中识别出最小量的配置详情,虽说起来配置覆盖也非常地容易。 一个简单的查看超类POM的默认配置的方法是裕兴如下的命令: mvnhelp: effective-pom 在你的电脑任意目录下创建一个pom.xml文件,内容使用上面提到的pom示例中的。 在展示下面的例子前,我们已经在C: \MVN\project文件夹中创建了一个pom.xml文件。 现在打开命令控制台,去到包含pom.xml的文件夹,然后执行下面的mvn命令。 C: \MVN\project>mvnhelp: effective-pom Maven将开始处理并显示有效的pom(effective-pom). [INFO]Scanningforprojects... [INFO]Searchingrepositoryforpluginwithprefix: 'help'. [INFO]------------------------------------------------------------------------ [INFO]BuildingUnnamed-panyname.project-group: project-name: jar: 1.0 [INFO]task-segment: [help: effective-pom](aggregator-style) [INFO]------------------------------------------------------------------------ [INFO][help: effective-pom{execution: default-cli}] [INFO] ..... [INFO]------------------------------------------------------------------------ [INFO]BUILDSUCCESSFUL [INFO]------------------------------------------------------------------------ [INFO]Totaltime: <1second [INFO]Finishedat: ThuJul0511: 41: 51IST2012 [INFO]FinalMemory: 6M/15M [INFO]------------------------------------------------------------------------ EffectivePOM在继承(inheritance)、插值(interpolation)和使用配置(profileapplying)后,展示的就如控制台中的结果一样。 xmlversion="1.0"encoding="UTF-8"? > --=================================================================--> ----> --GeneratedbyMavenHelpPluginon2012-07-05T11: 41: 51--> --See: http: //maven.apache.org/plugins/maven-help-plugin/--> ----> --=================================================================--> --=================================================================--> ----> --EffectivePOMforproject--> --'panyname.project-group: project-name: jar: 1.0'--> ----> --=================================================================--> //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.0h ttp: //maven.apache.org/xsd/maven-4.0.0.xsd"> \MVN\project\src\main\java \MVN\project\src\test\java \MVN\project\target\classes \MVN\project\target\test-classes \MVN\project\src\ma
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- maven 基础知识 学习 插件 使用