[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,表明项目构建成功。