[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本地默認倉庫路徑:

接著配置 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的網上中央倉庫查找,并放到本地倉庫供項目使用。
>