创建Maven项目

1年前 (2024-04-27)
Maven 提供了大量不同类型的 Archetype 模板,通过它们可以帮助用户快速的创建 Java 项目,其中最简单的模板就是 maven-archetype-quickstart,它只需要用户提供项目最基本的信息,就能生成项目的基本结构及 POM 文件。

创建 Maven 项目

下面我们将通过 maven-archetype-quickstart 原型,在 D:\maven 目录中创建一个基于 Maven 的 Java 项目。

打开令行窗口,跳转到 D:\maven 目录,执行以下 mvn 令。

​mvn archetype:generate -DgroupId=net.biancheng.www -DartifactId=helloMaven -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false


参数说明:

  • -DgroupId: 项目组 ID,通常为组织名或公司网址的反写。

  • -DartifactId: 项目名。

  • -DarchetypeArtifactId: 指定 ArchetypeId,maven-archetype-quickstart 用于快速创建一个简单的 Maven 项目。

  • -DinteractiveMode: 是否使用交互模式。


Maven 开始进行处理,并创建一套完整的 Maven 项目目录结构。

[INFO] Scanning for projects...

[INFO]

[INFO] ------------------< org.apache.maven:standalone-pom >-------------------

[INFO] Building Maven Stub Project (No POM) 1

[INFO] --------------------------------[ pom ]---------------------------------

[INFO]

[INFO] >>> maven-archetype-plugin:3.2.0:generate (default-cli) > generate-sources @ standalone-pom >>>

[INFO]

[INFO] <<< maven-archetype-plugin:3.2.0:generate (default-cli) < generate-sources @ standalone-pom <<<

[INFO]

[INFO]

[INFO] --- maven-archetype-plugin:3.2.0:generate (default-cli) @ standalone-pom ---

[INFO] Generating project in Batch mode

Downloading from central: https://repo.maven.apache网站站点" rel="nofollow" />

图1:Maven 项目目录结构


目录及文件说明:

  • helloMaven:项目名,包含 src 文件夹和 pom.xml。

  • src/main/java:用于存放项目的 Java 文件。

  • src/main/resources:用于存放项目资源文件。

  • src/test/java:用于存放所有测试 Java 文件,如 JUnit 测试类。

  • src/test/resources :用于存放测试资源文件。

  • target:项目输出位置,用于存放编译后的文件。

  • pom.xml:Maven 项目核心配置文件。


Maven 创建项目时,还自动生成了两个Java 文件: App.java 和 AppTest.java。其中 App.java 位于 src/main/java 下 ,代码如下。

package net.biancheng.www;

/**

* Hello world!

*/

public class App {

public static void main(String[] args) {

System.out.println("Hello World!");

}

}


AppTest.java 位于 src/test/java 下,代码如下。

package net.biancheng.www;

import junit.framework.Test;

import junit.framework.TestCase;

import junit.framework.TestSuite;

/**

* Unit test for simple App.

*/

public class AppTest

extends TestCase {

/**

* Create the test case

*

* @param testName name of the test case

*/

public AppTest(String testName) {

super(testName);

}

/**

* @return the suite of tests being tested

*/

public static Test suite() {

return new TestSuite(AppTest.class);

}

/**

* Rigourous Test :-)

*/

public void testApp() {

assertTrue(true);

}

}

注:本节侧重点在于使用 maven-archetype-quickstart 原型快速创建一个简单的 Maven 项目,为后续的学习做准备。对于 archetype 了解即可,在后面的 Maven Archetype 模板 中会详细讲解。