一:Maven简介:
Maven是一个项目管理工具,它包含了一个项目对象模型(Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来定义生命周期阶段(Phases)中插件(Plugin)目标(gole)的逻辑。当使用Maven的时候,用一个明确定义的项目对象模型描述你的项目。
作用:帮助我们构建项目,发布项目、管理依赖的一种工具。
pom.xml标签介绍:
1.groupId:项目或组织的唯一标志
2.artifactId:项目名称
3.version:版本号
groupId/artifactId/version即可标识一个具体的项目,在依赖时也需要声明这三个标签(子项目可以不声明version,会自动父级pom.xml中的版本)
4.packaging:打包机制,如:pom、jar、ejb、war、ear、rar、par、maven-plugin
5.name:用户描述项目的名称
6.url:开发团队的网站
7.scm:申明版本控制工具信息
<scm>
<connection>scm:svn:http://10.10.5.43/SC/SPROC4GD/00_code/sproc4gd</connection>
<developerConnection>scm:svn:http://10.10.5.43/SC/SPROC4GD/00_code/sproc4gd</developerConnection>
<tag>HEAD</tag>
<url>http://10.10.5.43/SC/SPROC4GD/00_code/sproc4gd</url>
</scm>
8.dependencies:声明项目的公共依赖信息,其中包含了一组dependency集合
9.parent:声明父级项目信息,在项目构建时,如果找不到依赖就会去父级pom.xml中去寻找,只有在子项目pom.xml才需要
10.dependencyManagement依赖管理,为可选择性依赖,此标签下包含dependencies标签,和上面说的一样,都应标明版本号。但是此标签下声明的依赖是供子项目使用的,当子项目中声明了某个依赖而没有声明版本时 ,就会到父级pom.xml中dependencyManagement下寻找是否有声明。
11.modules:需要构建的模板,默认从当前目录下寻找
12.properties:为pom定义一些常量,在pom中的其他地方可以直接引用。
定义方式:
<properties>
<project.version>1.0.0</sproc4gd.release.version>
</properties>
使用方式:
${project.version}
13.build 声明构建的目标、构建目录、构建后的名称等,是使用一系列插件来完成的。
14.reporting:主要声明需要生产的报告,比如javadoc,单元测试报告等,也是使用一系列插件来完成的
15.organization:项目组织,可选
16.developer发布者
17.repositories maven仓库
18.profiles:可以让我们定义一系列的配置信息,然后指定其激活条件进行激活
二、mvn常用命令
1.创建Maven的普通java项目:
mvn archetype:create -DgroupId=packageName -DartifactId=projectName
2.创建Maven的Web项目:
mvn archetype: create -DgroupId=packageName -DartifactId=webappName
-DarchetypeArtifactId=maven -archetype -webapp
3.编译源代码,不会编译test目录下的代码,第一次运行时会下载相关的依赖包:
mvn compile
4.编译测试代码:
mvn test -compile
5.运行测试:
mvn test
6.打包:
mvn package
7.在本地仓库中安装jar:
mvn install
8.清除产生的项目:
mvn clean
9.生产eclipse项目:
mvn eclipse:eclipse 清除mvn eclipse:clean
10.生产项目:
mvn archetype:generate -DgroupId=com.study.simple -DartifactId=simple-web -DarchetypeArtifactId=
maven-archetype-webapp
三、mvn常用参数
1.mvn -e 显示详细错误
2.mvn -U 强制更新snapshot类型的插件或依赖库(否则maven一天只会更新一次snapshot依赖)
3.mvn -o 运行offline模式,不联网更新依赖
4.mvn -N仅在当前项目模块执行命令,关闭reactor
5.mvn -pl module_name在指定模块上执行命令
6.mvn -ff 在递归执行命令过程中,一旦发生错误就直接退出
7.mvn -Dxxx=yyy 指定java全局属性
8.mvn -Pxxx 引用profile xxx