[TOC]
# maven常用的构建命令
目前已经使用过的命令:
```
`mvn -v ` 查看maven版本
`mvn compile` 编译
`mvn test` 测试
`mvn package` 打包
```
1. `maven clean`
用于删除 target 文件夹
2. `maven install`
在 code 中,新建 maven02 项目,用来存放演示代码,结构如下:
```
│ pom.xml
│
└─src
├─main
│ └─java
│ └─com
│ └─dodoke
│ └─maven02
│ └─util
│ Speak.java
│
└─test
└─java
└─com
└─dodoke
└─maven02
└─util
SpeakTest.java
```
Speak.java 内容如下:
```
package com.dodoke.maven02.util;
import com.dodoke.maven01.model.HelloWorld;
public class Speak {
public String sayHi() {
return new HelloWorld().sayHello();
}
}
```
SpeakTest.java 内容如下:
```
package com.dodoke.maven02.util;
import org.junit.*;
import org.junit.Assert.*;
public class SpeakTest {
@Test
public void testSayHi() {
Assert.assertEquals("Hello World!",new Speak().sayHi());
}
}
```
进到 maven02 目录下执行 `mvn compile` 命令,报错如下(找不到 HelloWorld 类):
`程序包com.dodoke.maven01.model不存在`
此时,我们进入 maven01 项目的根目录下,执行`mvn install`命令,将包含 HelloWorld 类的 jar 文件发布到本地仓库中。
maven本地默认仓库路径:
![](https://box.kancloud.cn/81387de86c1173d3b12800f784eba6eb_847x344.png)
接着配置 maven02 中的 pom.xml,添加新的依赖,将 maven01 项目的坐标引用进来
```
<?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.dodoke.maven02</groupId>
<artifactId>maven02-util</artifactId>
<version>0.0.1SHAPSHOT</version>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
</dependency>
<dependency>
<groupId>com.dodoke.maven01</groupId>
<artifactId>maven01-model</artifactId>
<version>0.0.1SHAPSHOT</version>
</dependency>
</dependencies>
</project>
```
此时,进入maven02工程根目录,执行`mvn compile`命令,提示项目构建成功,如下:
```
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3.366 s
[INFO] Finished at: 2018-10-19T11:06:52+08:00
```
执行mvn test顺利通过。
注:maven通过install将本地工程打包成jar包,放入到本地仓库中,再通过pom.xml配置依赖引入到当前工程。
> pom.xml中引入的坐标首先在本地maven仓库中查找,若没有则去maven的网上中央仓库查找,并放到本地仓库供项目使用。
>