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 文件任何赋值的地位。