Spring Boot「03」使用 Maven 管理并构建项目
今天我们来学习下如何用 Maven 来管理并构建 Spring Boot 项目。我们继续使用之前的 payroll 工程。
01-使用 Maven 构建多模块项目
接下来,我们将为 payroll 项目增加两个子模块,library 和 examples。主要步骤如下:
在 payroll/pom.xml 中增加如下内容:
与 payroll/pom.xml 同级新建两个目录,library 和 examples,它们的目录结构与 payroll 类似:
payroll/library/pom.xml 中增加如下内容:
构建多模块项目。
Maven 中处理多模块项目的机制也被称作 reactor,它的功能包括:
收集所有需要构建的模块
对模块进行排序,得到一个恰当到的构建顺序
按照顺序构建模块
所以,当对一个多模块项目执行
mvn install
的时候,会按照 reactor 的工作模式进行构建。如果只需要构建某个模块,可以通过mvn install -pl module1,module2
的方式指定要构建的模块;或者也可通过mvn install -f module1/pom.xml
方式指定某个模块。
02-使用 Maven Wrapper
Maven Wrapper 是受 Gradle Wrapper 启发而来。它将 Maven 构建工具与项目工程打包放在一起,屏蔽了不同机器上构建环境不同而带来的一系列问题。回想一下,在没有使用 Maven Wrapper 之前,我们是如何用 Maven 构建项目的,即mvn clean install
,而使用 Maven Wrapper 之后呢?./mvnw clean install
。可以看到,使用方式基本没有什么变化。
仔细观察下我们使用的项目 payroll,与 Maven Wrapper 相关的有如下几部分:
.mvn/wrapper
mvnw
mvnw.cmd
注:后两个分别是 *nix 和 windows 平台用于替代 mvn 的可执行脚本。
如何将 Maven Wrapper 引入到项目中呢?在项目根目录下执行:
注:3.5.4 指的是 Maven Wrapper 使用得 mvn 版本。如果要修改 mvn 的版本,可以修改 ${project.dir}/.mvn/wrapper/maven-wrapper.properties 中的 distributionUrl 即可。例如:
使用 mvnw 时,每次都会检查 {project.dir}/.mvn/wrapper/maven-wrapper.properties 中指定的 mvn 版本,若没有则自动下载。
mvnw 使用的 settings.xml 文件必须在 {maven_home}/conf 下的 settings.xml 配置不生效。
refs
[1] Creating a Multi Module Project
[2] Guide to Working with Multiple Modules
[3] Maven Wrapper
版权声明: 本文为 InfoQ 作者【Samson】的原创文章。
原文链接:【http://xie.infoq.cn/article/3f105ad076a91cfa787a0c567】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论