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配置
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插件生成了一个新的项目。
Maven项目可以通过pom.xml和创建目录来手工创建;也可以通过Maven的archetype项目来创建。
创建的项目 greeter-junit-unittest,目录结构如下:
五、编译、测试项目:
1.编译项目:
切换到包含pom.xml文件的目录,执行命令:
mvn compile
如果显示 “BUILD SUCCESS”表示编译过程结束。
编译好的代码放在target目录
2. 运行测试:
mvn test
六、理解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/