Maven快速入门和常用配置方式
介绍 聊Ja va项目构建,Apache Ma ven几乎是绕不开的一个工具。它的核心思路是基于项目对象模型(POM),通过一套标准化规则来搞定项目的构建、依赖管理和文档生成。简单说,就是让开发者少操心“怎么构建”,多关注“写什么代码”。 Ma ven 的特点 先来看看它究竟有哪些特别之处: 依赖管
介绍
聊Ja va项目构建,Apache Ma ven几乎是绕不开的一个工具。它的核心思路是基于项目对象模型(POM),通过一套标准化规则来搞定项目的构建、依赖管理和文档生成。简单说,就是让开发者少操心“怎么构建”,多关注“写什么代码”。

Ma ven 的特点
先来看看它究竟有哪些特别之处:
依赖管理: Ma ven用中央仓库(比如Ma ven Central Repository)统一管理项目依赖。依赖项会被自动下载到本地仓库,省去了手动折腾和解决版本冲突的麻烦。
生命周期和插件: Ma ven定义了一套完整的构建生命周期,每个生命周期又细分成多个阶段。常见的生命周期有clean、default(也就是build)、site。具体的构建任务——比如编译、测试、打包、部署——则是通过插件来实现的。
项目对象模型 (POM): 项目配置靠一个叫pom.xml的XML文件来描述,这就是项目对象模型。里面包含了项目的基本信息(名称、版本)、依赖关系,还有构建过程中的各种配置。
路径约定优于配置: Ma ven很推崇“约定优于配置”的思路,也就是说,它已经默认好了源码、测试代码、资源文件的存放位置,你不用每样都手动指定,这大大简化了构建流程。
构建继承: 对于多模块项目,Ma ven支持子项目继承父项目的配置,这样一来,重复的配置就少了,维护起来也清爽很多。
站点生成: Ma ven可以自动生成项目的文档站点,把项目文档、依赖图、各类报告都展示出来,对团队协作很有帮助。
环境一致性: 因为构建脚本是声明式的,而不是过程式的,所以Ma ven能很好地保证不同开发环境之间的一致性,避免“在我机器上能跑”的尴尬。
可移植性: Ma ven的构建脚本是平台无关的,只要支持Ja va,就能跑,跨平台兼容性非常好。
Ma ven 的优势
- 简化构建过程:标准化的构建流程让编译、测试、打包、部署变得简单又一致。
- 依赖管理:自动化的依赖管理,彻底告别手动管理依赖的烦恼。
- 可维护性和可扩展性:POM和生命周期的设计,让后续维护和功能扩展都容易得多。
- 团队协作:标准化的构建流程天然适合团队协作,大幅减少因构建环境差异带来的问题。
Ma ven 常用指令分类
构建命令
| 指令 | 描述 |
|---|---|
| mvn clean | 清除项目的工作目录,移除之前构建产生的文件。 |
| mvn compile | 编译项目的源代码。 |
| mvn test | 运行项目中的单元测试。 |
| mvn package | 打包项目,通常会生成 JAR 或 WAR 文件。 |
| mvn install | 将项目安装到本地仓库,方便其他项目作为依赖使用。 |
| mvn deploy | 将项目发布到远程仓库,供其他开发者下载。 |
生命周期命令
Clean 生命周期
| 指令 | 描述 |
|---|---|
| mvn pre-clean | 执行在 clean 之前的任何工作。 |
| mvn clean | 清除以前的构建结果。 |
| mvn post-clean | 执行在 clean 之后的工作。 |
Default 生命周期
| 指令 | 描述 |
|---|---|
| mvn process-resources | 复制并处理资源文件,使其为编译做好准备。 |
| mvn compile | 编译主源码。 |
| mvn process-classes | 在编译之后处理类文件。 |
| mvn generate-sources | 生成额外的源码,并将其添加到生成的源码目录中。 |
| mvn process-test-resources | 复制并处理测试资源。 |
| mvn test-compile | 编译测试源码。 |
| mvn process-test-classes | 在测试编译之后处理类文件。 |
| mvn test | 运行测试。这些不会被打包或部署。 |
| mvn prepare-package | 在测试之后执行打包前的操作。 |
| mvn package | 包装所有编译好的代码,使其适合分发。 |
| mvn pre-integration-test | 在集成测试前执行操作。 |
| mvn integration-test | 处理与集成测试相关的任务。 |
| mvn verify | 运行任何检查以验证包是否可用于部署。 |
| mvn install | 将包安装到本地存储库,以供其他项目作为依赖使用。 |
| mvn deploy | 将最终的包复制到远程存储库,以便与其他开发人员共享。 |
Site 生命周期
| 指令 | 描述 |
|---|---|
| mvn site | 生成项目站点文档。 |
| mvn pre-site | 在生成站点文档之前执行任何任务。 |
| mvn post-site | 在生成站点文档之后执行任何任务。 |
| mvn site-deploy | 将生成的站点文档部署到特定位置。 |
依赖命令
| 指令 | 描述 |
|---|---|
| mvn dependency:tree | 显示项目的依赖树。 |
插件命令
| 指令 | 描述 |
|---|---|
| mvn plugin:goal | 通常用于执行特定插件的目标。 |
其他命令
| 指令 | 描述 |
|---|---|
| mvn help:effective-pom | 显示当前项目实际使用的 POM。 |
| mvn versions:display-dependency-updates | 显示可以更新的依赖版本。 |
| mvn versions:display-plugin-updates | 显示可以更新的插件版本。 |
| mvn versions:update-properties | 更新版本属性。 |
| mvn dependency:sources | 获取依赖的源代码。 |
| mvn dependency:analyze | 分析项目的依赖,确定哪些依赖未被使用。 |
设置utf8编码格式方法
全局配置
添加系统环境变量:
- 变量名
MA VEN_OPTS - 变量值
-Xms256m -Xmx512m -Dfile.encoding=UTF-8
在项目pom.xml中配置
UTF-8 UTF-8
在项目的 pom.xml中 build 配置
org.apache.ma ven.plugins ma ven-compiler-plugin 1.8 1.8 UTF-8
总结
以上内容涵盖了Ma ven的核心概念、常用指令以及编码配置的实用技巧。从实践角度看,理解这些基础知识,足以应对大部分日常开发场景。希望这份梳理能对大家有帮助。
Windows 10 是一款微软推出的经典操作系统,拥有硬件兼容性与多任务处理能力。它更偏向把系统状态查看和常用调节动作放在一起,适合需要持续观察和微调设备状态的场景。
极度公式是一款跨平台专业LaTeX公式识别编辑软件,支持OCR公式识别和多平台编辑。和使用说明,避免使用,享受完整功能与稳定支持。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。
















