写点什么

Spring Boot「03」使用 Maven 管理并构建项目

作者:Samson
  • 2022 年 10 月 11 日
    上海
  • 本文字数:1258 字

    阅读完需:约 4 分钟

Spring Boot「03」使用 Maven 管理并构建项目

今天我们来学习下如何用 Maven 来管理并构建 Spring Boot 项目。我们继续使用之前的 payroll 工程。

01-使用 Maven 构建多模块项目

接下来,我们将为 payroll 项目增加两个子模块,library 和 examples。主要步骤如下:


  1. 在 payroll/pom.xml 中增加如下内容:


    <modules>      <module>library</module>      <module>examples</module>    </modules>
复制代码


  1. 与 payroll/pom.xml 同级新建两个目录,library 和 examples,它们的目录结构与 payroll 类似:


    └── library        └── src            └── main/java            └── test/java        └── pom.xml    └── examples        └── src            └── main/java            └── test/java        └── pom.xml    └── pom.xml
复制代码


  1. payroll/library/pom.xml 中增加如下内容:


    <parent>      <artifactId>payroll</artifactId>      <groupId>self.samson.example</groupId>      <version>0.0.1-SNAPSHOT</version>    </parent>
复制代码


  1. 构建多模块项目。

  2. Maven 中处理多模块项目的机制也被称作 reactor,它的功能包括:

  3. 收集所有需要构建的模块

  4. 对模块进行排序,得到一个恰当到的构建顺序

  5. 按照顺序构建模块

  6. 所以,当对一个多模块项目执行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 引入到项目中呢?在项目根目录下执行:


mvn wrapper:wrapper -Dmaven=3.5.4
复制代码


注:3.5.4 指的是 Maven Wrapper 使用得 mvn 版本。如果要修改 mvn 的版本,可以修改 ${project.dir}/.mvn/wrapper/maven-wrapper.properties 中的 distributionUrl 即可。例如:


distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.5.4/apache-maven-3.5.4-bin.zip
复制代码


使用 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

[4] 一文搞懂Maven Wrapper

发布于: 刚刚阅读数: 6
用户头像

Samson

关注

还未添加个人签名 2019.07.22 加入

InfoQ签约作者 | 阿里云社区签约作者

评论

发布
暂无评论
Spring Boot「03」使用 Maven 管理并构建项目_Java_Samson_InfoQ写作社区