本章知识来源:maven教程
简介
maven是java项目的依赖管理工具,用于管理项目中用到的所有依赖
maven的生命周期
一个maven项目在执行的时候分成很多个生命周期的阶段,每一个阶段的生命周期,都会将前面的所有周期执行一遍,即至上而下执行,如,我执行maven test
命令的时候,maven将会依次执行maven clean
、maven validate
、maven compile
、maven test
生命周期 | 含义 | 描述 |
---|---|---|
clean | 清除 | 清除所有依赖 |
validate | 验证项目 | 验证项目是否正确且所有必须信息是可用的 |
compile | 编译 | 源代码编译在此阶段完成 |
test | 单元测试 | 使用适当的单元测试框架(例如JUnit)运行测试。 |
package | 打包 | 创建JAR/WAR包如在 pom.xml 中定义提及的包 |
verify | 检查 | 对集成测试的结果进行检查,以保证质量达标 |
install | 安装 | 安装打包的项目到本地仓库,以供其他项目使用 |
deploy | 部署 | 拷贝最终的工程包到远程仓库中,以共享给其他开发人员和工程 |
maven的目录结构
![](https://img.haomeiwen.com/i10471443/354c222bd6de5b5c.png)
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.sinbxeunha.web</groupId>
<artifactId>josechan</artifactId>
<version>1.0-SNAPSHOT</version>
</project>
引入项目依赖
maven的坐标
对于依赖,maven是通过一个坐标去寻找指定的依赖的,坐标分为3个维度,分别为groupId、artifactId、version
例如,想要引入junit,则需要找到junit的坐标
maven仓库
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.1</version>
<scope>test</scope>
</dependency>
通常,groupId为组织/公司的域名倒写,如阿里巴巴开源项目的groupId为com.alibaba,artifactId为项目名称,version为版本号
下面是阿里巴巴德鲁伊项目的坐标
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.2.3</version>
</dependency>
引入依赖
如果想要在项目中引入德鲁伊的jar包,如下:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.sinbxeunha.web</groupId>
<artifactId>josechan</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.2.3</version>
</dependency>
</dependencies>
</project>
依赖坐标除了以上三个参数外,还可以指定依赖在哪个生命周期阶段产生作用,只要加入scope参数即可
网友评论