一直使用maven,缺少系统化学习,找了本教程,系统的了解和学习下
1 maven的基本概念
maven安装
# wget http://mirrors.hust.edu.cn/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz
# tar -xvf apache-maven-3.3.9-bin.tar.gz
# sudo mv -f apache-maven-3.3.9 /usr/local/
编辑 /etc/profile 文件 sudo vim /etc/profile,在文件末尾添加如下代码:
export MAVEN_HOME=/usr/local/apache-maven-3.3.9
export PATH=${PATH}:${MAVEN_HOME}/bin
pom指定环境
- modelVersion 模型版本
- groupId 组织
- artifactId 项目ID
- version 版本号
maven支持父POM继承
- <parent></parent>
- relativePath 默认值是../pom.xml 允许你选择路径
pom的属性
- packaging 打包方式jar,rar
- prerequisites 前置条件
- issueManagement 问题管理系统
- ciManagement 持续集成系统的名字
- build 构建项目需要的信息
- pluginManagement插件管理
profiles定义
- profile 配置
依赖管理
- dependencyManagement
- dependencies
远程依赖仓库
<!--发现依赖和扩展的远程仓库列表。 -->
<repositories>
<!--参见repositories/repository元素 -->
<repository>
<releases>
<enabled />
<updatePolicy />
<checksumPolicy />
</releases>
<snapshots>
<enabled />
<updatePolicy />
<checksumPolicy />
</snapshots>
<id />
<name />
<url />
<layout />
</repository>
</repositories>
<!--发现插件的远程仓库列表,这些插件用于构建和报表 -->
<pluginRepositories>
<!--包含需要连接到远程插件仓库的信息.参见repositories/repository元素 -->
<pluginRepository>
<releases>
<enabled />
<updatePolicy />
<checksumPolicy />
</releases>
<snapshots>
<enabled />
<updatePolicy />
<checksumPolicy />
</snapshots>
<id />
<name />
<url />
<layout />
</pluginRepository>
</pluginRepositories>
2 maven的生命周期
maven的三个生命周期
- clean:项目清理的处理
- default(或 build):项目部署的处理
- site:项目站点文档创建的处理
常用的命令
- 验证 validate
- 编译 compile
- 测试 Test
- 包装 package
- 检查 verify
- 安装 install
- 部署 deploy
3 构建配置文件的类型
三种文件
- pom.xml的文件
- 用户级 settings.xm文件
- 全局 conf/settings.xml
maven可以指定配置问题件xx.prod.properties
指定环境:mvn test -Denv=test
4 maven仓库
仓库分3类
- local 本地
- central中央
- remote远程
本地的配置settings.xml
<localRepository>C:/MyLocalRepository</localRepository>
配置远程仓库
<repositories>
<repository>
<id>companyname.lib1</id>
<url>http://download.companyname.org/maven2/lib1</url>
</repository>
<repository>
<id>companyname.lib2</id>
<url>http://download.companyname.org/maven2/lib2</url>
</repository>
</repositories>
maven的查找顺序
- 本地仓库
- 中央仓库 或者远程仓库
- 远程仓库找不到报错
5 插件
maven的三个生命周期
- clean:项目清理的处理
- default(或 build):项目部署的处理
- site:项目站点文档创建的处理
每个生命周期都预留了接口取做处理,常见的操作都是插件,比如创建项目,运行单测
6 构建java项目
idea或者命令行创建即可
7 构建&项目测试
mvn clean compile
8 引入外部依赖
这个比较常用
<dependencies>
<!-- 在这里添加你的依赖 -->
<dependency>
<groupId>ldapjdk</groupId> <!-- 库名称,也可以自定义 -->
<artifactId>ldapjdk</artifactId> <!--库名称,也可以自定义-->
<version>1.0</version> <!--版本号-->
<scope>system</scope> <!--作用域-->
<systemPath>${basedir}\src\lib\ldapjdk.jar</systemPath> <!--项目根目录下的lib文件夹下-->
</dependency>
</dependencies>
9 项目模板
mvn archetype:generate
10 项目文档
mvn site
11 快照
每次构建都会在远程仓库中检查新的快照,生成最新的jar包
12 自动化构建
持续集成服务器hudson
13 依赖管理
依赖的原则
- 依赖调节:如果两个依赖版本在依赖树里的深度是一样的时候,第一个被声明的依赖将会被使用。
- 依赖管理:直接的指定手动创建的某个版本被使用
- 依赖范围:包含在构建过程每个阶段的依赖。
- 依赖排除:任何可传递的依赖都可以通过 "exclusion" 元素被排除在外
- 依赖可选:任何可传递的依赖可以被标记为可选的,通过使用 "optional" 元素
依赖范围
- 编译阶段
- 供应阶段
- 运行阶段
- 测试阶段
- 系统阶段
- 导入阶段
14 自动化部署
15 web应用
16 各类ide的使用
eclipse
netbeans
intellij
网友评论