You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

maven-archetype-quickstart是否仍适用?Java项目Maven初始化标准是什么?

关于maven-archetype-quickstart的过时问题与替代方案

1. maven-archetype-quickstart 1.4确实已过时

这个2018年发布的版本存在明显的时代局限性:

  • 默认依赖的JUnit版本偏低(通常为JUnit 4.12),需手动升级才能适配现代测试需求
  • 默认Maven编译插件配置针对旧版Java(如Java 8),必须手动修改为Java 17才能匹配你的开发环境
  • 缺少现代Java项目常用的插件配置(如你添加的maven-shade-plugin),每次创建项目都要重复调整

2. 更优的Maven Archetype与初始化方式

(1)官方更新版maven-archetype-quickstart

目前官方已发布1.5版本,解决了旧版本的核心问题:

  • 默认适配更高版本的Java,编译插件配置更灵活
  • 默认将JUnit依赖升级至4.13.2,无需手动修改
  • 创建项目命令:
    mvn archetype:generate -DarchetypeGroupId=org.apache.maven.archetypes -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.5
    

(2)maven-archetype-javase

这是Apache官方针对Java SE项目推出的专用原型,比quickstart更贴合现代Java SE开发场景,默认配置包含更合理的编译参数、依赖管理,适合纯Java SE项目。

(3)手动创建pom.xml

对于有经验的开发者,手动编写pom.xml是更灵活的选择:

  • 完全自定义项目结构、依赖版本和插件配置
  • 避免archetype带来的冗余配置,直接添加所需的maven-compiler-plugin、JUnit 4.13.2、maven-shade-plugin等
  • 核心配置示例:
    <build>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.11.0</version>
          <configuration>
            <source>17</source>
            <target>17</target>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-shade-plugin</artifactId>
          <version>3.5.1</version>
          <executions>
            <execution>
              <phase>package</phase>
              <goals>
                <goal>shade</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
      </plugins>
    </build>
    <dependencies>
      <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.13.2</version>
        <scope>test</scope>
      </dependency>
    </dependencies>
    

(4)框架专属初始化工具(若涉及框架开发)

如果项目需要用到Java框架,行业主流的初始化方式是框架专属工具:

  • Spring Boot:使用Spring Initializr,可直接生成包含完整配置的Maven项目,支持选择Java版本、依赖、打包方式等
  • Quarkus:通过Quarkus CLI或官网初始化页面生成项目,适配云原生场景
  • Micronaut:提供轻量化的项目初始化能力,类似Spring Initializr

3. 当前行业标准

  • 纯Java SE项目:优先使用更新后的官方quickstart(1.5+)或maven-archetype-javase;追求灵活性的开发者更倾向于手动编写pom.xml
  • 框架项目:使用对应框架的官方初始化工具(如Spring Initializr),这类工具会自动适配最新的框架版本、Java版本和最佳实践
  • Fat JAR构建:maven-shade-plugin仍是主流选择,部分场景也会使用maven-assembly-plugin,具体取决于项目对依赖打包的需求

内容的提问来源于stack exchange,提问作者Socrates

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 04:57:15