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
相关产品推荐
相关产品推荐

