[TOC]
# 第一個 maven 案例
## Maven 目錄結構
```
└─src
├─main
│ └─java 主代碼
│ └─package
└─test
│ └─java 測試相關代碼
│ └─package
├─resources 存放資源文件
```
接下來,根據上述目錄,新建 maven01 項目,并創建相應代碼
## 示例
創建 code 文件夾,用來存放演示代碼,結構如下:
```
└─maven01
│ pom.xml
│
└─src
├─main
│ └─java
│ └─com
│ └─dodoke
│ └─maven01
│ └─model
│ HelloWorld.java
│
└─test
└─java
└─com
└─dodoke
└─maven01
└─model
HelloWorldTest.java
```
HelloWorld.java 內容如下:
```
package com.dodoke.maven01.model;
public class HelloWorld {
public String sayHello() {
return "Hello World!";
}
}
```
HelloWorldTest.java 內容如下:
```
package com.dodoke.maven01.model;
import org.junit.*;
import org.junit.Assert.*;
public class HelloWorldTest {
@Test
public void testHello() {
Assert.assertEquals("Hello World!",new HelloWorld().sayHello());
}
}
```
> junit 用來做單元測試
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.dodoke.maven01</groupId>
<artifactId>maven01-model</artifactId>
<version>0.0.1SHAPSHOT</version>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
</dependency>
</dependencies>
</project>
```
> groupId 的值就是項目的包名
> artifactId 的值是模塊名
1. Maven 項目構建命令 compile
前面我們按照 maven 約束好的文件路徑建好項目后,加入 pom.xml,命令行進入項目根目錄下,輸入 `mvn compile` 后,第一次運行,maven 就會自動幫我們下載依賴 jar,項目會新增 target 文件夾,其中有 classes (編譯生成的字節碼文件)文件夾。我們把這個過程稱為 **編譯**。
2. Maven 項目構建命令 test
前面我們寫好測試類,命令行進入項目根目錄下,輸入 `mvn test`,maven 就會自動幫我們下載依賴 jar,其中有 surefire-reports (測試報告) 、 test-classes (測試類字節碼)兩個文件夾。我們把這個過程稱為 **測試**。
3. Maven 項目構建命令 package
從字面來看,package 這個命令是 **打包**。命令行進入項目根目錄下,輸入`mvn package` ,maven 就會自動幫我們下載依賴 jar,會在 target 文件夾生成對應的 jar 包。
> 出現 BUILD SUCCESS,表明項目構建成功。