全栈开发探索 - Maven 的使用

前言

我做的银行 it 综合管理平台项目使用的 Maven 作为项目管理工具,Maven 工具可以对 Java 项目进行构建和依赖管理。
下面简单总结下我对 Maven 的使用。

安装

下载地址是 https://maven.apache.org/download.cgi 目前最新的是 Maven 3.6.1版本。
下载成功后解压缩,解压后目录如下:
Maven 目录结构

配置

配置本地 Maven 仓库

创建一个目录作为本地库,用于存放 Maven 从远程中心库下载好的 jar 包
如:D:/Program Files/Maven/Repository
修改 setting.xml 配置文件,找到安装目录中 /conf/settings.xml 文件并修改,
找到 <localRepository> 标签配置本地库地址:
<localRepository>D:/Program Files/Maven/Repository</localRepository>

配置网络代理

如果公司使用内网,需要代理才能上外网,可以在 /conf/settings.xml 中配置网络代理

1
2
3
4
5
6
7
8
9
10
11
12
13
<proxies>
<!-- proxy
| Specification for one proxy, to be used in connecting to the network.
|
-->
<proxy>
<id>my-proxy</id>
<active>true</active>
<protocol>http</protocol>
<host>172.10.10.35</host>
<port>8080</port>
</proxy>
</proxies>

配置中心仓库镜像地址

国内网络有时连接 Maven 中心库很慢,就需要借助阿里云的 Maven 中心库镜像地址。

1
2
3
4
5
6
7
8
  <mirrors>
    <mirror>
        <id>nexus-aliyun</id>
        <mirrorOf>*</mirrorOf>
        <name>Nexus aliyun</name>
        <url>[http://maven.aliyun.com/nexus/content/groups/public](http://maven.aliyun.com/nexus/content/groups/public)</url>
    </mirror>
  </mirrors>

配置好 settings.xml 后,还需要在我们常用的 IDE 中配置 Maven。

IDE 中配置 Maven

Eclipse 配置 Maven

打开 Eclipse 的偏好设置 /Window/Preferences,找到 Maven - User Settings 配置项。
User Settings 配置项中设置 Maven 的 User Settings 为 D:\Program Files\apache-maven-3.6.0\conf\settings.xml
Local Respository 设置为本地库地址,D:/Program Files/Maven/Repository。

eclipse 配置

点击 Apply and Close 应用配置。

IDEA 配置 Maven

File - Settings 打开 IDEA 的设置,找到 Maven 配置项,分别设置 User settings file 和 Local repository 配置项,并勾选 Override。

IDEA 配置

点击 Apply 应用配置。

配置好后,在 pom 文件中添加依赖后保存,IDE 会自动下载依赖的 jar 包。
如果显示依赖下载完成,pom 文件还是报错很可能是某些包没下载完整,删掉已下载的 jar 包所在文件夹,重新尝试下载。

常用命令

-D 指定参数。
-P 指定 Profile 配置,加载指定的应用配置文件,如 mvn package –Pdev,使用 Maven 打包项目,指定 dev 的 Profile 配置,项目会加载 resources 目录下的 application-dev.properties 项目配置文件,项目默认加载的是 application.properties
mvn package -Dmaven.test.skip=true 编译打包项目,并跳过单元测试。
mvn clean 清理项目。
mvn test 运行单元测试。
mvn compile 编译项目。

使用 Maven 构建多模块项目

大型项目中,合理的模块拆分,便于代码的复用,维护和管理,所以我们大多使用 Maven 构建多模块项目。
以 Eclipse 为例建一个 Maven 项目。

多模块-父工程

选择 Maven Project 建一个父工程。

建每个子模块的时候选择 Maven Module。

新建模块

Parent Project 处选择之前建立的父工程,Finish 之后,新建的子模块就在这个父工程下了。

完成后的目录结构如下:
目录结构

父工程的 POM 文件,主要维护依赖的版本信息,如:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud-version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.bots.push</groupId>
<artifactId>domain</artifactId>
<version>${app-svr-version}</version>
</dependency>
</dependencies>
</dependencyManagement>

这样,子模块添加对应的依赖就不用写每个依赖的 <version> 版本号。

后记

每个技术栈都有对应自己的项目管理工具,Java 有 Maven,Gradle,iOS 有 CocosPod,前端有 Webpack,了解对应技术栈的项目管理工具,可以让开发事半功倍。以上只是 Maven 使用的一小部分内容,仅供参考。