Maven
Maven的作用:项目构建,依赖管理。
文章借鉴了菜鸟教程Maven相关的内容,链接为Maven教程。
1、项目对象模型POM(Project Object Model)
包含4个部分:
-
POM关系
-
构建设置
-
构建环境
-
项目信息
2、Maven的生命周期
-
clean
清除上次构建生成的文件
- 1)
pre-clean:执行清理前需要完成的工作 - 2)
clean:清理上一次构建生成的文件 - 3)
post-clean:执行清理后需要完成的工作
- 1)
-
default
构建项目,重要的phase如下:
- 1)
validate:验证工程是否正确,所有需要的资源是否可用。 - 2)
compile:编译项目的源代码。 - 3)
test:使用合适的单元测试框架来测试已编译的源代码。这些测试不需要已打包和布署。 - 4)
package:把已编译的代码打包成可发布的格式,比如jar。 - 5)
integration-test:如有需要,将包处理和发布到一个能够进行集成测试的环境。 - 6)
verify:运行所有检查,验证包是否有效且达到质量标准。 - 7)
install:把包安装到maven本地仓库,可以被其他工程作为依赖来使用。 - 8)
deploy:在集成或者发布环境下执行,将最终版本的包拷贝到远程的repository,使得其他的开发者或者工程可以共享。
- 1)
-
site
建立和发布项目站点
- 1)
pre-site:生成项目站点之前需要完成的工作 - 2)
site:生成项目站点文档 - 3)
post-site:生成项目站点之后需要完成的工作 - 4)
site-deploy:将项目站点发布到服务器
- 1)
3、Maven仓库
仓库:项目所依赖的第三方库存放的位置
-
本地(local)
-
远程(remote)
-
中央(central)
搜索顺序:本地-->远程-->中央
4、项目模板
Maven 使用原型 archetype插件创建自定义的项目结构,形成Maven项目模板。原型即为一个项目模板,例如要创建一个简单的helloworld项目,则执行mvn命令使用DarchetypeArtifactId=maven-archetype-quickstart参数,创建原型为maven-archetype-quickstart的项目。
5、构建简单的java项目
mvn archetype:generate
-DgroupId=com.companyname.bank
-DartifactId=consumerBanking
-DarchetypeArtifactId=maven-archetype-quickstart //项目原型
-DinteractiveMode=false //是否交互模式,区别于批处理模式
6、引入外部依赖
直接在pom.xml中添加依赖的参数。
7、依赖管理
Maven拥有对依赖的传递机制,例如B依赖于A,C依赖于B,则C依赖A,maven会管理这种依赖传递的关系。
8 、Maven自动化部署
部署步骤
通常在项目的开发的过程中,部署包括以下步骤:
-
将项目代码提交到SVN或者其它代码库中并打上标签;
-
从SVN下载完整的项目代码;
-
使用Maven构建应用;
-
把构建好的WAR或JAR包文件存储到常用的网络位置下;
-
从网络上获取文件并部署到生产站点上;
-
更新文档和应用版本号。
自动部署
maven-release-plugin插件可以实现自动部署,部分参数如下:
-
scm配置SVN的路径,Maven将从该路径下将代码取下来。 -
repository构建的WAR或EAR或JAR文件的位置,或者其他源码构建成功后生成的构件的存储位置。 -
plugin配置maven-release-plugin插件来实现自动部署过程。 -
resources:用于排除或包含某些资源文件
9、Maven中POM的3种关系
-
依赖关系:
<dependencies>、<dependency>标签; -
继承关系:
<parent>标签,子pom文件能继承父pom的依赖; -
聚合关系:
<modules>标签,将多个maven的项目聚合为一个大的项目。
10、Maven的属性
Maven的属性是值得占位符,如${X},可用于pom文件任何赋值的位置。