Maven项目管理工具的介绍
一、什么是maven
maven是基于项目对象模型(POM:project Object Model),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。
1.跨平台的软件项目管理工具
2.是java平台的主要项目管理工具:项目构建,依赖管理,项目信息管理
主要功能:
1.项目构建
2.依赖管理
二、什么是构建
1.所谓构建,就是对项目进行编译,打包,部署的过程
2.构建的详细过程
清理-编译-测试-报告-打包-部署
3.项目构建的方式:
1.eclipse(idea)手工操作较多,不方便
2.ant:只能构建,不能依赖管理,不全面,不灵活
3.maven:既能构建,又能依赖管理,全面,灵活
三、maven模型
1.pom.xml:一小段描述信息:项目对象模型信息,依赖管理信息
2.依赖管理:到中央仓库(镜像)下载依赖的jar到local(本地仓库),项目用到jar引用本地仓库引用.
3.构建:使用的是一个个的plug in(插件)完成.
四、maven安装
1.下载:http://maven.apache.org
2.解压到本地目录最好不要有中文
1.bin:放maven命令:mvn
2.boot:放的是类加载器,maven用
3.conf:放配置文件,settings.xml,本地仓库:localRepository
4.lib:放的是maven用jar包
3.配置环境变量:
1.MAVEN_HOME:D:\apache-maven-xxx-bin
2.PATH:;%MAVEN_HOME%\bin;
4.测试:mvn -v
五、maven的配置
1.全局配置
默认:${user.home}/.m2/repository
在conf/settings.xml中修改:<localRepository>D:\myrepo2</localRepository>
2.用户配置
默认:没有settings.xml,需要将全局conf/settings.xml复制到 ${user.home}/.m2
settings.xml中修改:<localRepository>D:\myrepo3</localRepository>
3.特殊情况:
全局和用户都没配置<localRepository>节点,则本地仓库的路径是默认的${user.home}/.m2/repository
六、maven坐标
1.概念:在maven中坐标就是为了定位一个唯一确定的jar包.
2.坐标组成:
groupId:定义当前Maven组织名称,公司域名的倒写
artifactId:定义实际项目名称
version:定义当前项目的当前版本
七、maven的生命周期
1.三套相互独立的生命周期
1.Clean生命周期
pre-clean 执行一些需要在clean之前完成的工作
clean 移除所有上一次构建生成的文件
post-clean 执行一些需要在clean之后立刻完成的工作
2.Default生命周期
validate
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 接受编译好的代码,打包成可发布的格式,如 JAR 。
pre-integration-test
integration-test
post-integration-test
verify
install 将包安装至本地仓库,以让其它项目依赖。
deploy 将最终的包复制到远程的仓库,以让其它开发人员与项目共享
3.Site生命周期
pre-site 执行一些需要在生成站点文档之前完成的工作
site 生成项目的站点文档
post-site 执行一些需要在生成站点文档之后完成的工作,并且为部署做准备
site-deploy 将生成的站点文档部署到特定的服务器上
八、maven插件
1.编译插件
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.7</source>
<target>1.7</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
2.Tomcat插件
<build>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<configuration>
<port>8080</port>
<path>/</path>
</configuration>
</plugin>
</plugins>
</build>