Maven-项目目录
每日一言
没必要的事就不做,必要的事就尽快做。
——折木奉太郎《冰菓》
什么是Maven
Maven 是一个 基于 POM(Project Object Model) 的构建工具,它通过一个 pom.xml
文件来管理项目的配置,包括依赖、插件、构建流程等。
Maven的作用包括以下几点:
- 依赖管理:自动下载并管理项目所需的第三方库(如JUnit,Spring,MySQL驱动),避免手动引入jar包。
- Jar包:用于打包Java类、资源文件和元数据的压缩文件格式。
- 标准化项目结构:Maven 提倡统一的项目目录结构,关于具体的结构我们下面再讲。
- 构建自动化:一条命令即可完成编译、测试、打包、安装、部署等流程。
- 插件机制:支持丰富的插件。
最基础的Maven项目结构
1 |
|
各部分说明:
- pom.xml:项目的核心,定义依赖,构建配置,插件等。
- src/main/java/ :放置应用的核心 Java 源代码。
- src/main/resources/ :放置应用运行时需要的配置文件或资源,如
application.properties
、log4j.xml
等。 - src/main/webapp/ :用于 Web 项目,包含 JSP、HTML、CSS、JavaScript 文件,
WEB-INF
子目录下会放置web.xml
等。 - src/test/java/ :单元测试代码,通常使用 JUnit 或 TestNG。
- src/test/resources/ :测试中用到的配置文件或数据文件。
- target/ :存放 Maven 构建过程产生的文件,如编译后的
.class
文件、测试报告、打包生成的 JAR/WAR 文件等。这个目录通常可以安全删除,Maven 会在下次构建时重新生成。
除了基础的项目结构外,还有几个文件可以方便我们对于maven的使用:
Maven Wrapper
Maven Wrapper 是一种让项目自带Maven的“启动器”,它的关键作用是:
- 保证团队成员使用相同版本的Maven,避免版本不一致的尴尬问题
- 不需要预先在系统中全局安装Maven,项目开箱即用
- 常用于CL/CD环境,如GitHub Action,Jenkins,GitLab CL等。
- CL(持续集成):频繁地(每天多次)将代码集成到主分支,并自动构建、测试 ,从而快速发现问题。
- CD(持续交付):CI 之后,自动将构建好的产物发布到“可上线”的环境(如测试、预发布环境)
Maven Wrapper 包含的文件
1 |
|
执行效果
当你运行:
1 |
|
- 检查
.mvn/wrapper/maven-wrapper.properties
中指定的 Maven 版本。 - 如果没有这个Maven版本,自动下载。
- 使用对应版本的Maven执行
clean install
命令
所以在拿到手一个新的Maven项目时,可以优先使用mvnw命令,以确保使用相同的版本减少错误的发生。
Maven-项目目录
http://blog.ulna520.com/2025/04/30/Maven-入门_20250430_151142/