- Maven 教程
- Maven - 首頁
- Maven - 概述
- Maven - 環境搭建
- Maven - POM
- Maven - 構建生命週期
- Maven - 構建配置檔案
- Maven - 倉庫
- Maven - 外掛
- Maven - 建立專案
- Maven - 構建和測試專案
- Maven - 外部依賴
- Maven - 專案文件
- Maven - 專案模板
- Maven - 快照
- Maven - 構建自動化
- Maven - 管理依賴
- Maven - 部署自動化
- Maven - Web 應用
- Maven - Eclipse IDE
- Maven - NetBeans
- Maven - IntelliJ IDEA
- Maven 有用資源
- Maven - 常見問題解答
- Maven - 快速指南
- Maven - 有用資源
- Maven - 討論
Maven - 專案模板
Maven 使用原型(Archetype)的概念,為使用者提供了非常龐大的專案模板列表(數量達 614 個)。Maven 幫助使用者使用以下命令快速啟動一個新的 Java 專案。
mvn archetype:generate
什麼是原型(Archetype)?
原型(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 > companyname > insurance > 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 > companyname > insurance > 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 中的單個命令建立任何型別的專案,並快速啟動您的開發工作。
不同的原型
| 序號 | 原型 ArtifactIds 和描述 |
|---|---|
| 1 | maven-archetype-archetype 一個包含示例原型的原型。 |
| 2 | maven-archetype-j2ee-simple 一個包含簡化示例 J2EE 應用程式的原型。 |
| 3 | maven-archetype-mojo 一個包含示例 Maven 外掛的原型。 |
| 4 | maven-archetype-plugin 一個包含示例 Maven 外掛的原型。 |
| 5 | maven-archetype-plugin-site 一個包含示例 Maven 外掛站點的原型。 |
| 6 | maven-archetype-portlet 一個包含示例 JSR-268 Portlet 的原型。 |
| 7 | maven-archetype-quickstart 一個包含示例 Maven 專案的原型。 |
| 8 | maven-archetype-simple 一個包含簡單 Maven 專案的原型。 |
| 9 | maven-archetype-site 一個包含示例 Maven 站點的原型,用於演示一些受支援的文件型別,如 APT、XDoc 和 FML,並演示如何對站點進行國際化。 |
| 10 | maven-archetype-site-simple 一個包含示例 Maven 站點的原型。 |
| 11 | maven-archetype-webapp 一個包含示例 Maven Webapp 專案的原型。 |