# Maven 创建 Java 项目

## 创建Java 项目

1. 选择"File" --> "New"-->"Project"
2. &#x20;选择Maven, 再选择 JDK 版本, 不勾选下面的”Create from archetype", 点击"Next"&#x20;
3. 设置GroupId 和 Artifactic. GroupId 和 package 命名规则类似， 如果是公司则用域名倒序 com.xxx, 如果是个人则用 indi.xxx。 Artifactic和工程名相同。点击"Next"。
4. 检查 Maven 配置, 也就是上一节讲到的三个地方: Maven 安装路径, Maven配置文件和Maven本地仓库路径。点击"Finish"

随后IDEA为我们创建了一个Maven工程。

## Maven 工程目录结构

* pom.xml,  描述项目如何构建，声明项目依赖
* src/main/java,  java源代码
* src/main/resources 项目资源, 比如 property文件
* src/test/java 项目的测试类, 比如JUnit代码
* src/test/resources 测试用的资源
* target 目标文件，比如将项目打包好的jar包

## Maven 常用命令

在开发中，我们主要用到Maven的两个命令：

1. maven compile，用于编译项目
2. maven package 打包项目

### IDEA 集成 Maven 命令

在IDEA中，并不需要我们手动的在命令行当中输入maven命令，可以直接通过图形化界面实现。

点击IDEA 右上角绿色锤子旁边的下拉键，选择"Edit Confugurations", 点击左上角的 “+”， 选择Maven。随后出现如下界面:

![](https://github.com/chesterzhang/intro_Java/blob/zhc_dev/picture/maven/Maven_IDEA_compile.png?raw=true)

&#x20;我们需要填写3个地方

1. Name, 这个表示图形化按钮的名字，自己取一个就行，但是要有意义。
2. Working directory, 工作路径，也就是工程路径，IDEA默认为我们填好了
3. Command line， Maven命令。比如我们需要编译， 用到的是 maven compile 命令， 我们只需要填入 "compile“即可，前面的 maven不用填。
4. 点击”下面的OK“

类似的我们也可以完成 maven package 命令的图形化按钮创建，这里就不演示了

## 运行起来

### 创建一个Java文件

右键 src/main/java, 选择 "Mark Directory as" --> "Sources Root"， 将src/main/java 标记成源文件目录。随后右键 src/main/java, 选择"New"--> "Java Class" 创建一个Java 类:

```java
HelloMaven {
    public static void main(String[] args) {
        System.out.println("Hello, Maven !");
    }
}
```

### 编译起来

在IDEA右上角的小锤子旁边会出现一个 maven compile的图标，选中它，点击旁边的 右三角 按钮，即可编译当前项目。

编译完应该在控制台看到 "\[INFO] BUILD SUCCESS" 的输出。

编译好了以后，我们可以进到maven本地的仓库路径，会发现里面会下载很多文件，这些都是Maven项目运行时的依赖。

### Run起来

可以直接 左键main 方法旁的绿色三角run起来，也可以左键IDEA右上角绿色小锤子旁边的选项，选择HelloMaven，再左键旁边的绿色三角。即可在控制台看到输出

### 项目打包

点击 maven compile 按钮会将我们的项目打包。

我们会发现在 target 文件夹下出现了一个Maven0-1.0-SNAPSHOT.jar。这个就是我们的工程打包后的文件。我们还会发现在target/classes 文件夹下多出来一个 HelloMaven.class 文件。这就是编译后的class文件。
