Maven 项目模板

Maven 项目模板大全(2025 最新版)

一句话总结
一行命令生成标准项目结构 + 最佳 pom.xml + 热部署 + 测试 + 打包


一、快速生成模板(推荐)

类型命令
基础 Javamvn archetype:generate -DgroupId=com.example -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
Web 项目mvn archetype:generate -DgroupId=com.example -DartifactId=my-web -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false
Spring Boothttps://start.spring.io
多模块手动 + 父 POM

二、模板 1:基础 Java 项目(quickstart)

生成命令

mvn archetype:generate \
  -DgroupId=com.example \
  -DartifactId=my-java-app \
  -DarchetypeArtifactId=maven-archetype-quickstart \
  -DinteractiveMode=false

标准 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
         https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.example</groupId>
    <artifactId>my-java-app</artifactId>
    <version>1.0.0</version>
    <packaging>jar</packaging>

    <name>My Java App</name>

    <properties>
        <maven.compiler.source>17</maven.compiler.source>
        <maven.compiler.target>17</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <junit.version>5.10.3</junit.version>
    </properties>

    <dependencies>
        <!-- JUnit 5 -->
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter</artifactId>
            <version>${junit.version}</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <!-- 可执行 JAR -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>3.6.0</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals><goal>shade</goal></goals>
                        <configuration>
                            <transformers>
                                <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                    <mainClass>com.example.App</mainClass>
                                </transformer>
                            </transformers>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>

三、模板 2:Web 项目(webapp)

生成命令

mvn archetype:generate \
  -DgroupId=com.example \
  -DartifactId=my-web-app \
  -DarchetypeArtifactId=maven-archetype-webapp \
  -DinteractiveMode=false

优化 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
         https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.example</groupId>
    <artifactId>my-web-app</artifactId>
    <version>1.0.0</version>
    <packaging>war</packaging>

    <properties>
        <maven.compiler.source>17</maven.compiler.source>
        <maven.compiler.target>17</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <jakarta.servlet.version>5.0.0</jakarta.servlet.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>jakarta.servlet</groupId>
            <artifactId>jakarta.servlet-api</artifactId>
            <version>${jakarta.servlet.version}</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>

    <build>
        <finalName>${project.artifactId}</finalName>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>3.4.0</version>
            </plugin>
        </plugins>
    </build>
</project>

四、模板 3:Spring Boot 项目(推荐 start.spring.io)

在线生成:https://start.spring.io

推荐配置

  • Project: Maven
  • Language: Java
  • Spring Boot: 3.3.5
  • Packaging: Jar
  • Java: 17
  • Dependencies: Spring Web, Spring Boot DevTools, Lombok

生成后 pom.xml 关键部分

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>3.3.5</version>
    <relativePath/>
</parent>

<properties>
    <java.version>17</java.version>
</properties>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
        <scope>runtime</scope>
        <optional>true</optional>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

五、模板 4:多模块项目(enterprise)

结构

enterprise-app/
├── pom.xml                 ← 父 POM
├── common/
│   └── pom.xml
├── service-user/
│   └── pom.xml
└── web-api/
    └── pom.xml

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.enterprise</groupId>
    <artifactId>enterprise-parent</artifactId>
    <version>1.0.0</version>
    <packaging>pom</packaging>

    <modules>
        <module>common</module>
        <module>service-user</module>
        <module>web-api</module>
    </modules>

    <properties>
        <java.version>17</java.version>
        <spring-boot.version>3.3.5</spring-boot.version>
    </properties>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${spring-boot.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
</project>

六、模板 5:微服务模板(Spring Cloud)

使用 Spring Initializr 添加:

  • Spring Cloud Routing
  • Spring Cloud LoadBalancer
  • Eureka Discovery Client

七、一键生成脚本(复制粘贴)

# 基础 Java
create_java() {
    mvn archetype:generate -DgroupId=$1 -DartifactId=$2 -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
}

# Web 项目
create_web() {
    mvn archetype:generate -DgroupId=$1 -DartifactId=$2 -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false
}

# 使用
create_java com.example my-app
create_web com.example my-web

八、IDEA 快速导入模板

  1. File → New → Project from Version Control
  2. 粘贴 GitHub 模板仓库:
  • https://github.com/spring-guides/gs-multi-module
  • https://github.com/spring-projects/spring-petclinic

九、推荐模板仓库(GitHub)

模板链接
Spring Boot 基础https://github.com/spring-projects/spring-boot
多模块示例https://github.com/spring-guides/gs-multi-module
微服务模板https://github.com/spring-cloud-samples

十、快速上手命令总结

# 1. 生成项目
mvn archetype:generate -DgroupId=com.example -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

# 2. 进入项目
cd my-app

# 3. 编译 + 测试 + 打包
mvn clean package

# 4. 运行
java -jar target/my-app-1.0.0-shaded.jar

恭喜!你已掌握 Maven 项目模板!


下一步推荐

方向内容
Docker 模板Dockerfile + maven
CI/CD 模板GitHub Actions
K8s 部署Helm Chart

需要 完整 Spring Boot 多模块微服务模板
回复 Spring Boot Template 立即获取 GitHub 链接!

类似文章

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注