Maven - 项目模板


Maven 使用Archetype的概念为用户提供了一个非常大的不同类型的项目模板列表(数量为 614 个) 。Maven帮助用户使用以下命令快速启动一个新的java项目。

mvn archetype:generate

什么是原型?

Archetype 是一个 Maven 插件,其任务是根据其模板创建项目结构。我们将在这里使用快速入门原型插件创建一个简单的 java 应用程序。

使用项目模板

我们打开命令控制台,进入C:\ > MVN目录并执行以下mvn命令。

C:\MVN>mvn archetype:generate 

Maven 将开始处理并要求选择所需的原型。

C:\MVN>mvn archetype:generate
[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 Interactive mode
[INFO] No archetype defined. Using maven-archetype-quickstart (org.apache.maven.archetypes:maven-archetype-quickstart:1.0)
Choose archetype:
1: remote -> am.ik.archetype:elm-spring-boot-blank-archetype (Blank multi project for Spring Boot + Elm)
2: remote -> am.ik.archetype:graalvm-blank-archetype (Blank project for GraalVM)
...
3021: remote -> za.co.absa.hyperdrive:component-archetype_2.12 (-)
Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): 1843:

按 Enter 键选择默认选项(1843:maven-archetype-quickstart)

Maven 将询问原型的特定版本。

Choose org.apache.maven.archetypes:maven-archetype-quickstart version:
1: 1.0-alpha-1
2: 1.0-alpha-2
3: 1.0-alpha-3
4: 1.0-alpha-4
5: 1.0
6: 1.1
7: 1.3
8: 1.4
Choose a number: 8:

按 Enter 键选择默认选项 (8: maven-archetype-quickstart:1.4)

Maven 将询问项目详细信息。按要求输入项目详细信息。如果提供了默认值,请按 Enter。您可以通过输入自己的值来覆盖它们。

Define value for property 'groupId': : com.companyname.insurance
Define value for property 'artifactId': : health
Define value for property 'version': 1.0-SNAPSHOT:
Define value for property 'package': com.companyname.insurance:

Maven 将要求确认项目详细信息。按 Enter 或按 Y。

Confirm properties configuration:
groupId: com.companyname.insurance
artifactId: health
version: 1.0-SNAPSHOT
package: com.companyname.insurance
Y:

现在 Maven 将开始创建项目结构并显示以下内容 -

[INFO] ----------------------------------------------------------------------------
[INFO] Using following parameters for creating project from Archetype: maven-archetype-quickstart:1.4
[INFO] ----------------------------------------------------------------------------
[INFO] Parameter: groupId, Value: com.companyname.insurance
[INFO] Parameter: artifactId, Value: health
[INFO] Parameter: version, Value: 1.0-SNAPSHOT
[INFO] Parameter: package, Value: com.companyname.insurance
[INFO] Parameter: packageInPathFormat, Value: com/companyname/insurance
[INFO] Parameter: package, Value: com.companyname.insurance
[INFO] Parameter: groupId, Value: com.companyname.insurance
[INFO] Parameter: artifactId, Value: health
[INFO] Parameter: version, Value: 1.0-SNAPSHOT
[INFO] Project created from Archetype in dir: C:\MVN\health
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  04:44 min
[INFO] Finished at: 2021-12-13T18:52:59+05:30
[INFO] ------------------------------------------------------------------------

创建项目

现在转到C:\ > MVN目录。您将看到创建了一个名为health的 java 应用程序项目,该项目在项目创建时作为artifactId给出。Maven 将为项目创建一个标准目录布局,如下所示 -

项目结构

创建 POM.xml

Maven 为项目生成一个 POM.xml 文件,如下所示 -

<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.companyname.insurance</groupId>
   <artifactId>health</artifactId>
   <version>1.0-SNAPSHOT</version>
   <packaging>jar</packaging>
   <name>health</name>
   <url>http://maven.apache.org</url>
   <properties>
      <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
   </properties>
   <dependencies>
      <dependency>
      <groupId>junit</groupId>
         <artifactId>junit</artifactId>
         <version>3.8.1</version>
         <scope>test</scope>
      </dependency>
   </dependencies>
</project>

创建App.java

Maven 为项目生成示例 java 源文件 App.java,如下所示 -

位置:C:\ > MVN > health > src > main > java > com > 公司名称 > 保险 > App.java

package com.companyname.insurance;

/**
* Hello world!
*
*/
public class App {
   public static void main( String[] args ) {
      System.out.println( "Hello World!" );
   }
}

创建AppTest.java

Maven 为项目生成示例 java 源测试文件 AppTest.java,如下所示 -

位置:C:\ > MVN > health > src > test > java > com > 公司名称 > 保险 > AppTest.java

package com.companyname.insurance;

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 的强大功能了。您可以在 Maven 中使用单个命令创建任何类型的项目,并可以启动您的开发。

不同的原型

先生。 原型 ArtifactId 和描述
1

maven-原型-原型

原型,其中包含示例原型。

2

maven-原型-j2ee-简单

一个原型,其中包含一个简化的示例 J2EE 应用程序。

3

maven-原型-mojo

一个原型,其中包含示例 Maven 插件示例。

4

maven-原型-插件

一个原型,其中包含示例 Maven 插件。

5

maven-原型-插件站点

一个原型,其中包含示例 Maven 插件站点。

6

maven-原型-portlet

一个原型,其中包含一个示例 JSR-268 Portlet。

7

maven-原型-快速入门

一个原型,其中包含示例 Maven 项目。

8

Maven 原型简单

一个原型,包含一个简单的 Maven 项目。

9

Maven 原型站点

原型,其中包含示例 Maven 站点,用于演示一些受支持的文档类型(如 APT、XDoc 和 FML),并演示如何国际化您的站点。

10

Maven 原型站点简单

一个原型,其中包含示例 Maven 站点。

11

maven-原型-webapp

一个原型,其中包含示例 Maven Webapp 项目。