0

0

在Java中如何创建Maven项目结构_Java标准工程目录解析

P粉602998670

P粉602998670

发布时间:2026-02-03 14:07:54

|

792人浏览过

|

来源于php中文网

原创

用 mvn archetype:generate 生成标准结构最直接,需指定 -DarchetypeArtifactId(如 maven-archetype-quickstart),确保 src/main/java 等路径自动创建;包路径必须与 groupId 对齐(如 com.example → com/example/),resources 文件按类路径加载,IDE 导入后须手动标记源码根目录。

在java中如何创建maven项目结构_java标准工程目录解析

mvn archetype:generate 快速生成标准结构

最直接的方式不是手动建文件夹,而是用 Maven 内置原型命令。执行以下命令后按提示选 maven-archetype-quickstart(对应 Java 项目)或 maven-archetype-webapp(Web 项目):

mvn archetype:generate -DgroupId=com.example -DartifactId=my-app -Dversion=1.0.0 -DarchetypeArtifactId=maven-archetype-quickstart

生成后你会得到符合 Maven 约定的目录树,src/main/javasrc/test/java 等路径自动创建,无需手敲。

注意:别跳过 -DarchetypeArtifactId 参数,否则可能拉取默认的旧版原型,导致 src/main/resources 缺失或 pom.xml 没配好编译插件。

src/main/javasrc/test/java 的包路径必须严格对齐

Maven 不靠文件夹名识别源码,而是依赖 groupId + artifactId 推导默认包根路径。比如 groupIdcom.example,那么 src/main/java 下必须从 com/example/... 开始放类,否则 mvn compile 会报 package does not exist

立即学习Java免费学习笔记(深入)”;

  • 错误示例:src/main/java/MyService.java —— 编译失败,Maven 找不到该类的所属包
  • 正确写法:src/main/java/com/example/MyService.java,且文件内声明 package com.example;
  • 测试类同理:src/test/java/com/example/MyServiceTest.java,包名和主代码一致

resources 目录不参与编译但会被打包,路径需与代码包结构配合

src/main/resources 下的文件(如 application.propertieslogback.xml)在构建时原样复制到 target/classes/,和 class 文件平级。这意味着如果在代码中用 Class.getResource("/config/db.conf") 加载,实际查找路径是 target/classes/config/db.conf

Smart Picture
Smart Picture

Smart Picture 智能高效的图片处理工具

下载

常见踩坑点:

  • 配置文件放在 src/main/resources/com/example/ 下,却用 getResource("db.conf") —— 缺少前导 / 导致相对路径查找失败
  • 误将 .java 文件放进 resources 目录 —— 不会被编译,也不会报错,但运行时 ClassNotFoundException
  • src/test/resources 只在测试阶段生效,生产打包时不会包含其中内容

IDE 导入后仍需检查是否识别为 Maven 项目

IntelliJ 或 Eclipse 导入项目时,即使有 pom.xml,也可能只当普通文件夹处理,导致 src/main/java 不被识别为 Sources Root,src/test/java 不是 Test Sources Root。

验证方式:

  • 在 IntelliJ 中右键 src/main/java → “Mark as Sources Root”,确认图标变成蓝色文件夹
  • 执行 mvn clean compile 后检查 target/classes/ 是否生成了对应 class 文件
  • 若 IDE 提示 “Cannot resolve symbol” 且命令行编译正常,大概率是 IDE 没刷新 Maven 项目(IntelliJ 点右上角 Maven 工具栏的刷新按钮;Eclipse 右键项目 → “Maven” → “Update Project”)

真正容易被忽略的是:Maven 的目录约定是硬性约束,不是建议。一旦路径或包名错位,mvn test 可能静默跳过测试类,或者 mvn package 打出的 jar 里缺资源——这些都不会报明显错误,只会让运行时崩得莫名其妙。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
eclipse教程
eclipse教程

php中文网为大家带来eclipse教程合集,eclipse是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。php中文网还为大家带来eclipse的相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

191

2023.06.14

eclipse怎么设置中文
eclipse怎么设置中文

eclipse设置中文的方法:除了设置界面为中文外,你还可以为Eclipse添加中文插件,以便更好地支持中文编程。例如,你可以安装EBNF插件来支持中文变量名,或安装Chinese Helper来提供中文帮助文档。本专题为大家提供eclipse设置中文相关的各种文章、以及下载和课程。

797

2023.07.24

c语言编程软件有哪些
c语言编程软件有哪些

c语言编程软件有GCC、Clang、Microsoft Visual Studio、Eclipse、NetBeans、Dev-C++、Code::Blocks、KDevelop、Sublime Text和Atom。更多关于c语言编程软件的问题详情请看本专题的文章。php中文网欢迎大家前来学习。

604

2023.11.02

Eclipse版本号有哪些区别
Eclipse版本号有哪些区别

区别:1、Eclipse 3.x系列:Eclipse的早期版本,包括3.0、3.1、3.2等;2、Eclipse 4.x系列:Eclipse的最新版本,包括4.0、4.1、4.2等;3、Eclipse IDE for Java Developers等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

168

2024.02.23

eclipse和idea有什么区别
eclipse和idea有什么区别

eclipse和idea的区别:1、平台支持;2、内存占用;3、插件系统;4、智能代码提示;5、界面设计;6、调试功能;7、学习曲线。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

140

2024.02.23

eclipse设置中文全教程
eclipse设置中文全教程

本专题整合了eclipse设置中文相关教程,阅读专题下面的文章了解更多详细操作。

109

2025.10.10

eclipse字体放大教程
eclipse字体放大教程

本专题整合了eclipse字体放大教程,阅读专题下面的文章了解更多详细内容。

136

2025.10.10

eclipse左边栏不见了解决方法
eclipse左边栏不见了解决方法

本专题整合了eclipse左边栏相关教程,阅读专题下面的文章了解更多详细内容。

110

2025.10.15

全国统一发票查询平台入口合集
全国统一发票查询平台入口合集

本专题整合了全国统一发票查询入口地址合集,阅读专题下面的文章了解更多详细入口。

12

2026.02.03

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Kotlin 教程
Kotlin 教程

共23课时 | 3.2万人学习

C# 教程
C# 教程

共94课时 | 8.4万人学习

Java 教程
Java 教程

共578课时 | 56.4万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号