yngyzhon'gyngyzhon'gMaven是一个软件项目管理和理解工具。 基于POM(project object model)的思想。


一、下载和安装:
下载安装文件apache-maven-3.3.9-bin.zip。
安装Maven很简单,只要将maven主目录中的bin目录添加到path环境变量即可。
输入命令mvn -v来检查是否安装成功。
Path=D:\java_workdir\apache-maven-3.3.9\bin

Maven Overview_Maven


二、 Maven配置
1. MAVEN_OPTS 环境变量:
MAVEN_OPTS包含用来启动执行Maven的JVM的参数,并提供Maven的其余的选项。例如设定JVM的内存:
MAVEN_OPTS=-Xms256m -Xmx512m


2. settings.xml文件:
Maven的不同项目的配置。
settings.xml配置Maven的执行方式,但是并不针对某一个单独的项目。settings.xml会出现在2个目录:
全局设置:${maven.home}/conf/settings.xml 
用户设置:${user.home}/.m2/settings.xml


3.   .mvn文件夹:
在每个项目的最顶层目录,文件maven.config和extensions.xml,包含每个项目的特殊的配置。


三、 Running Apache Maven:

1.Maven运行语法;
mvn [options] [<goal(s)>] [<phase(s)>]


2.查看所有的执行选项:
mvn -h


3.构建一个Maven项目,使用Maven生命周期阶段,例如:
maven package
Maven内置的生命周期及阶段,按顺序是:
clean - pre-clean, clean, post-clean
default - validate, initialize, generate-sources, process-sources, generate-resources, process-resources, compile, process-classes, generate-test-sources, process-test-sources, generate-test-resources, process-test-resources, test-compile, process-test-classes, test, prepare-package, package, pre-integration-test, integration-test, post-integration-test, verify, install, deploy
site - pre-site, site, post-site, site-deploy


4.构建一个项目,生成所有packaged outputs、documentation site 并部署到 repository manager:
mvn clean deploy site-deploy
创建package 并且安装到本地repository ,供其他项目重用:
mvn clean install
执行特殊任务,插件任务: a goal of a plugin
mvn archetype:generate
mvn checkstyle:check


5. 使用maven构建项目:
(1)大多数maven项目可以使用如下命令构建:
mvn clean install
构建所有模块,并安装到 local repository。


四、Creating a new Project

使用Maven archetype:generate goal 来生成第一个Maven java project

1.运行命令:mvn archetype:generate

2.选择默认的archetype,archetype number 101 : maven-archetype-quickstart 。

3.选择archetype的版本,默认的是最新稳定版本。

4.输入项目坐标:groupId,artifactId, version, and package。

groupId:用来定义一个项目在Maven Repository(你的系统中的Repository)中的位置。GroupId是根文件夹,被组织内的多个项目所共享。

artifactId是项目的标识符,version是这个项目的版本号。当artifacts在repository中部署时,会使用artifactId标识符,并且被用作其他项目的依赖。

完成时,会显示如下的结果:

Maven Overview_概览_02

以上,我们使用maven插件生成了一个新的项目。

Maven项目可以通过pom.xml和创建目录来手工创建;也可以通过Maven的archetype项目来创建。

创建的项目 greeter-junit-unittest,目录结构如下:

Maven Overview_Maven_03

五、编译、测试项目:

1.编译项目:

切换到包含pom.xml文件的目录,执行命令:

mvn compile

如果显示 “BUILD SUCCESS”表示编译过程结束。

编译好的代码放在target目录

2. 运行测试:

mvn test

Maven Overview_Maven_04

六、理解pom.xml:

每一个项目都包含pom.xml,该文件包含项目所有元数据信息。

1. Project坐标:

项目坐标是POM定义所必须包含的项,groupId, artifactId, and version。

2. Sections of pom.xml:

(1)The basics:

(2)Build settings:

(3)Project Metadata:

(4)Enviroment:


七、Build Lifecycle:

三个内置构建生命周期:default clean site。

1. Default Lifecycle:

Default Lifecycle处理项目的编译、测试和部署。包含20多个阶段,重要的阶段包括:

> Validate: validates that all project information is available and is correct

> Compile: compiles the source code

> Test: runs unit tests within a suitable framework

> Package: packages the compiled code in its distribution format

> Integration-test: processes the package in the integration-test environment

> Verify: runs checks to verify that the package is valid

> Install: installs the package in the local repository

> Deploy: installs the final package in a remote repository

当执行 某个阶段时,之前的阶段也会被执行,例如mvn integration-test ,前几个阶段也会执行。

2. Clean lifecycle:

处理项目的编译,包含下面阶段:

> Pre-clean: executes processes required before project cleaning

> Clean: removes all files generated by previous builds

> Post-clean: executes processes required to finalize project cleaning

3. Site Lifecycle :

>ff Pre-site: executes processes required before generation of the site

> Site: generates the project’s site documentation

> Post-site: executes processes required to finalize the site generation and prepares the

site for deployment

> Site-deploy: deploys the site documentation to the specified web server


八、Build Profiles(待完善)

1. Explicit command-line trigger

2. Maven settings trigger

3. Environment specific trigger


Maven 中央仓库地址:  http://mvnrepository.com/