Apache Maven入门指南

来源:互联网 发布:政府网络维护费用 编辑:程序博客网 时间:2024/06/05 15:39

Maven是一款项目管理的工具,基于POM (project object model)提供了编译、构建、打包和发布等管理操作。

1. Maven的版本

Maven 1.x和Maven 2.x已经过时了,因此至少要使用Maven 3.x的版本。

当前的最新版本是Maven 3.3.9,但是需要JDK 1.7.


2. Maven的安装

首先安装JDK

安装完毕后,可以设置JAVA_HOME环境变量,指向JDK的安装目录。

然后安装Maven

安装完毕后,需要设置path路径,指向Maven的安装目录下的bin子目录;此外,还可以设置MAVEN_HOME环境变量,指向Maven的安装目录。

安装后,打开Windows命令行窗口,执行mvn -v即可。


3. Maven的生命周期阶段

Maven内置定义了如下一系列的生命周期阶段,用以描述对项目的管理操作:

1) clean生命周期
  • pre-clean
  • clean
  • post-clean
2) 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
3) site生命周期
  • pre-site
  • site
  • post-site
  • site-deploy

这些生命周期阶段在执行mvn命令时默认顺序执行,即以上各个阶段是有前后顺序的。例如,执行mvn package,则package阶段之前的各个阶段默认都将执行。

在项目管理过程中,针对Maven生命周期阶段的不足,还可以以插件的方式对Maven进行扩展。


4. 通过Maven插件创建项目

Maven通过插件提供了大量的管理操作,这里以创建项目为例介绍Maven的基本用法。后续会详细介绍Maven的各个插件及用法。

[html] view plain copy
print?
  1. mvn archetype:generate   
  2. -DgroupId=com.jdsu.nc   
  3. -DartifactId=ntc-portal   
  4. -DarchetypeArtifactId=maven-archetype-quickstart   
  5. -DinteractiveMode=false  
mvn archetype:generate -DgroupId=com.jdsu.nc -DartifactId=ntc-portal -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

上述作为一条命令,执行完毕后,会在当前目录下生成如下ntc-portal子目录,子目录中又生成了pom.xml文件、简单的包和代码。


命令解释如下:

1) archetype:generate,其中archetype是插件名,generate是该插件提供的一个执行目标 (goal)。这表明要执行archetype插件的generate目标。

各大公司和开发人员都可以为Maven提供插件,用以支持特定的功能。一个Maven插件可以被看作是goal的集合,其中包含一系列goal。Maven archetype插件是一个project的模块,可以结合用户的收入参数生成一个Maven项目。

2) groupId,给出要生成的项目的源代码的包名。

3) artifactId,给出要生成的项目的名称,必须唯一。

4) archetypeArtifactId,是archetype插件中提供的项目模板的名字。

5) interactiveMode,该命令的执行交互模式,false表示命令给出了所有所必须的参数,直接执行命令。


参考文献:

Maven官网 http://maven.apache.org/