Maven在Java项目开发中的应用
⒈ 项目构建
什么是构建工具?
构建工具是将软件项目构建相关的过程自动化的工具。构建一个软件项目通常包含以下一个或多个过程:
生成源码(如果项目使用自动生成源码);
① 从源码生成项目文档;
② 编译源码;
③ 将编译后的代码打包成 JAR 文件或者 ZIP 文件;
④ 将打包好的代码安装到服务器、仓库或者其它的地方;
有些项目可能需要更多的过程才能完成构建,这些过程一般也可以整合到构建工具中,因此它们也可以实现自动化。
自动化构建过程的好处是将手动构建过程中犯错的风险降到最低。而且,自动构建工具通常要比手动执行同样的构建过程要快。
⒉ 文档管理
⒊ 生成测试报告
⒋ 解决项目间依赖项
⒌ 源代码版本管理及自动关联
⒍ 项目 Releases
⒎ 辅助测试
⒏ jar 包自动下载
⒐ 强制性精确的 jar 包管理
⒑ 项目的分发
Maven POM
POM 是可以继承的,通常对于一个大型的项目或是多个 module 的情况,子模块的 POM 需要指定父模块的 POM。
POM 文件中节点含义
可以参照 maven 官网上的文档
project:POM 文件的顶级元素; 任何你想 build 的事物,Maven 都会把它们当作是一个Project;这些 Project 被定义为 POM(Project Object Model);一个 Project 可以依赖其他的 project,一个 project 也可以有多个子 project 组成
modelVersion:所使用的 object model 版本,为了确保稳定的使用,这个元素是强制性的。除非 maven开发者升级模板,否则不需要修改
groupId:是项目创建团体或项目的唯一标志符,通常是域名倒写如:com.bjpowernode 或者 com.bjpowernode.p2p
artifactId:是项目 artifact 唯一的基地址名,通常指的是项目名或者模块名如:p2p 或者 dataservice
version:artifact 的版本,通常能看见为类似 0.0.1-SNAPSHOT,其中 SNAPSHOT 表示项目开发中,为开发版本
packaging:artifact 打包的方式,如 jar、war、ear 等等。默认为 jar。这个不仅表示项目最终产生何种后缀的文件,也表示 build 过程使用什么样的 lifecycle。
name:表示项目的展现名,在 maven 生成的文档中使用
url:表示项目的地址,在 maven 生成的文档中使用,通常不用
description:表示项目的描述,在 maven 生成的文档中使用
dependencies:表示依赖,在子节点 dependencies 中添加具体依赖的 groupId、artifactId 和 version,Maven在搭建工程时主要是编写依赖。编写依赖就是从官网上复制
build:表示 build 配置
parent:表示父 POM