IDEA进行Maven依赖管理
2025/9/17大约 3 分钟
基于IDEA进行Maven依赖管理
依赖管理实用技巧1. 依赖管理概念
Maven依赖管理是Maven最重要的功能之一。通过定义POM文件,Maven能够自动解析项目的依赖关系,并通过Maven仓库自动下载和管理依赖,避免了手动下载和管理依赖的繁琐工作。
2. Maven工程核心信息配置(GAVP)
<!-- 模型版本 -->
<modelVersion>4.0.0</modelVersion>
<!-- 公司/组织唯一标志 -->
<groupId>com.companyname.project-group</groupId>
<!-- 项目唯一ID -->
<artifactId>project</artifactId>
<!-- 版本号 -->
<version>1.0.0</version>
<!-- 打包方式:jar/war/pom -->
<packaging>jar</packaging>
3. 依赖管理配置
<dependencies>
<!-- 引入具体的依赖包 -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
<!-- 依赖范围:runtime表示仅运行时需要 -->
<scope>runtime</scope>
</dependency>
</dependencies>
依赖版本统一提取
<properties>
<junit.version>4.12</junit.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
</dependency>
</dependencies>
4. 依赖范围
依赖范围 | 描述 |
---|---|
compile | 编译依赖范围,默认值,三种classpath均有效 |
test | 测试依赖范围,仅对测试classpath有效 |
provided | 已提供依赖范围,编译和测试有效,运行时外部容器提供 |
runtime | 运行时依赖范围,仅测试和运行时有效 |
system | 系统依赖范围,指定本地依赖路径,不推荐 |
import | 仅与dependencyManagement配合使用,导入依赖管理 |
5. 依赖下载失败常见解决方法
- 检查网络连接和Maven仓库服务器状态。
- 检查依赖项的版本号与配置文件中的版本号是否正确。
- 清除本地Maven仓库缓存(lastUpdated文件)。
手动:
脚本:
清除lastUpdated文件脚本
cls
@ECHO OFF
SET CLEAR_PATH=D:
SET CLEAR_DIR=D:\maven-repository
color 0a
TITLE ClearLastUpdated For Windows
GOTO MENU
:MENU
CLS
ECHO.
ECHO. * * * * ClearLastUpdated For Windows * * * *
ECHO. * *
ECHO. * 1 清理*.lastUpdated *
ECHO. * *
ECHO. * 2 查看*.lastUpdated *
ECHO. * *
ECHO. * 3 退 出 *
ECHO. * *
ECHO. * * * * * * * * * * * * * * * * * * * * * * * *
ECHO.
ECHO.请输入选择项目的序号:
set /p ID=
IF "%id%"=="1" GOTO cmd1
IF "%id%"=="2" GOTO cmd2
IF "%id%"=="3" EXIT
PAUSE
:cmd1
ECHO. 开始清理
%CLEAR_PATH%
cd %CLEAR_DIR%
for /r %%i in (*.lastUpdated) do del %%i
ECHO.OK
PAUSE
GOTO MENU
:cmd2
ECHO. 查看*.lastUpdated文件
%CLEAR_PATH%
cd %CLEAR_DIR%
for /r %%i in (*.lastUpdated) do echo %%i
ECHO.OK
PAUSE
GOTO MENU

6. Maven工程Build构建配置
- 可以指定打包名称、包含/排除文件、插件版本等。
指定打包文件
如果在java文件夹中添加java类,会自动打包编译到classes文件夹下!
但是在java文件夹中添加xml文件,默认不会被打包!
默认情况下,按照maven工程结构放置的文件会默认被编译和打包!
除此之外、我们可以使用resources标签,指定要打包资源的文件夹要把哪些静态资源打包到 classes根目录下!
应用场景:mybatis中有时会将用于编写SQL语句的映射文件和mapper接口都写在src/main/java下的某个包中,此时映射文件就不会被打包,如何解决
配置依赖插件
dependencies标签下引入开发需要的jar包!我们可以在build/plugins/plugin标签引入插件!
常用的插件:修改jdk版本、tomcat插件、mybatis分页插件、mybatis逆向工程插件等等!
<build>
<finalName>自定义打包名称</finalName>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
</build>
具体示例
<build>
<plugins>
<!-- java编译插件,配jdk的编译版本 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<!-- tomcat插件 -->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<port>8090</port>
<path>/</path>
<uriEncoding>UTF-8</uriEncoding>
<server>tomcat7</server>
</configuration>
</plugin>
</plugins>
</build>
小结
Maven依赖管理极大简化了开发流程,统一依赖版本、自动下载依赖、灵活配置依赖范围,是现代Java项目开发的必备技能。