初识Maven
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
:将项目站点发布到服务器
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文件任何赋值的位置。