Featured image of post Maven依赖管理

Maven依赖管理

Maven依赖管理

1.Maven能干什么

Maven是专门用于管理和构建Java项目的工具,它的主要功能有:

提供了一套标准化的项目结构(IDEA,ESCAPLSE等工具目录都不同,移植项目不太方便,使用Maven创建的项目就不会这样)
提供了一套标准化的构建流程(编译,测试,打包,发布…)
提供了一套依赖管理机制(依赖管理其实就是管理你项目所依赖的第三方资源(ja包、插件.…))

1
2
3
4
5
6
<!--导入mysql驱动Jar包-->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.32</version>
</dependency>

2.Maven安装配置

1
2
3
4
https://maven.apache.org/

https://repo1.maven.org/maven2/      maven中央仓库,里面存放免费开源的jar包
https://developer.aliyun.com/mvn/view   阿里云私服仓库

1
2
3
4
5
bin
boot    maven自带jar包
conf    maven配置文件

创建Maven环境变量

2.1.配置本地仓库

1
修改conf目录下settings.xml文件,添加<localRepository>D:\Maven\apache-maven-3.9.8\maven_resp</localRepository

2.2.配置阿里云私服

1
2
3
4
5
6
<mirror>
  <id>alimaven</id>
  <name>aliyun maven</name>
  <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
  <mirrorOf>central</mirrorOf>
</mirror>

3.Maven基本使用

3.1.Maven常用命令

1
2
3
4
5
compile:编译
clean:清理
test:测试
package:打包
install:安装

在项目的pom.xml文件下执行

1
2
3
mvn compile

此时会自动下载,下载的jar包存放在Maven安装目录下自己创建的maven_repo目录下

1
2
3
4
5
6
7
mvn clean   清除target目录,target目录存放编译的字节码文件

mvn package  将java项目打包成jar包

mvn test     将目录下的java代码进行测试执行,屏幕会输出测试代码执行效果

mvn install  将当前项目安装到本地仓库,此时本地仓库存在对应jar包

3.2.Maven生命周期

1
就是执行install前默认会执行 compile test package

4.IDEA配置Maven项目

4.1.IDEA配置Maven环境

File—设置—搜索maven—配置对应信息(路径&&仓库)

4.2.Maven坐标详解

Maven坐标是资源唯一标识,使用坐标来定义项目或引入项目中需要的依赖

Maven坐标组成

1
2
3
groupld:定义当前Maven]项目隶属组织名称(通常是域名反写,例如:com.itheima)
artifactld:定义当前Maven项目名称(通常是模块名称,例如order-service、goods-service)
versionI定义当前项目版本号

4.3.IDEA导入Maven项目

打开IDEA,右侧有个maven面版,点击加号

找到一个项目的pom.xml文件即可导入

1
插件下载,搜索Maven Helper

5.依赖管理与依赖范围

5.1.使用坐标导入Jar包

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
<!-- 导入mysql的驱动Jar包,使用过才会有提示-->
<dependencies>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.34</version>
    </dependency>

<!--导入druid数据库连接池-->
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>druid</artifactId>
        <version>1.1.12</version>
    </dependency>
</dependencies>

ALT+Insert可以快速导入Jar包依赖

6.IDEA导入第三方依赖

点击添加maven项目

选择对应pom.xml文件,点击确定

在自己的pom.xml中安装依赖

1
2
3
4
5
6
<!--        引入第三方依赖-->
<dependency>
    <groupId>com.example</groupId>
    <artifactId>itheima-utils</artifactId>
    <version>0.0.1-SNAPSHOT</version>
</dependency>

7.Maven高级

7.1.分模块设计与开发

分模块开发需要先针对模块功能进行设计,再进行编码。不会先将工程开发完毕,然后进行拆分。

将项目按照功能拆分成若干个子模块,方便项目的管理维护、扩展,也方便模块间的相互调用,资源共享。

案例—将tlias改成分模块设计方案

创建一个Maven模块

只需要将pojo和utils新建两个模块,在这两个模块中安装对应依赖,和包,在主项目tlias中导入上述两个依赖即可正常运行

7.2.继承与聚合

7.2.1.Maven继承

1.创建maven模块tias-parent,该工程为父工程,设置打包方式pom(默认jar)。

1
2
3
jar:普通模块打包springboot项目基本都是jar包内嵌tomcat运行
war:普通web程序打包需要部署在外部的tomcat服务器中运行
pom:父工程或聚合工程该模块不写代码仅进行依赖管理

父工程也需要继承springboot的父工程,修改其它的模块,将父工程设置为tias-parent

1
2
3
4
5
6
<parent>
    <groupId>cn.edu</groupId>
    <artifactId>tlias-parent</artifactId>
    <version>1.0-SNAPSHOT</version>
    <relativePath>../tlias-parent/pom.xml</relativePath>    //tlias-parent的pom文件路径
</parent>

然后再父工程中将项目公有的依赖配置好,子项目就可以删除了

7.2.2.Maven版本锁定

在maven中,可以在父工程的pom文件中通过.来统一管理依赖版本。子工程引入依赖时,无需指定版本号,父工程统一管理。变更依赖版本,只需在父工程中统一变更。

dependencyManagement只管理依赖版本,不会直接依赖,其它子项目想使用还需要导入依赖,只是版本号可以不用写

也可以再父工程中设置版本标签

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
<properties>
    <maven.compiler.source>18</maven.compiler.source>
    <maven.compiler.target>18</maven.compiler.target>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <lombok.version>1.18.34</lombok.version>     //自定义属性名要有业务含意
    <jwt.version>0.9.0</jwt.version>
</properties>

<dependencies>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>${lombok.version}</version>
    </dependency>
</dependencies>

7.2.3.Maven聚合

只需要在聚合工程(父工程)的pom文件中添加各个子模块路径即可

1
2
3
4
5
6
<!--聚合其它模块-->
<modules>
    <module>../tlias-pojo</module>
    <module>../tials-utils</module>
    <module>../tials</module>
</modules>

在父类的运行Maven打包命令即可

继承与聚合作用:聚合用于快速构建项目,继承用于简化依赖配置、统一管理依赖

继承与聚合相同点:聚合与继承的pom.xml文件打包方式均为pom,可以将两种关系制作到同一个pom文件中

聚合与继承均属于设计型模块,并无实际的模块内容

7.3.Maven私服

私服配置说明.md

By Lsec
最后更新于 Sep 26, 2025 23:42 +0800
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计
¹鵵ҳ