Maven
约 574 字大约 2 分钟
2020-09-06
本文整理 Maven 日常开发中的常用配置和命令,帮助快速解决依赖下载慢、本地 jar 安装、构建参数等问题。
配置
配置远程仓库
Maven 默认从中央仓库下载依赖,国内访问较慢。配置阿里云镜像加速下载:
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>将上述配置添加到 settings.xml 的 <mirrors> 节点中。
配置环境变量
Linux/macOS 环境变量配置:
# set maven environment
export MAVEN_HOME=/home/program/apache-maven-3.6.3
export PATH=$MAVEN_HOME/bin:$PATH配置完成后执行 mvn -v 验证是否生效。
使用
安装本地 jar
当第三方 jar 未发布到中央仓库时,需要手动安装到本地仓库:
mvn install:install-file \
-Dfile=/Users/jinchen/Downloads/j2v8_macos_x86_64-5.1.1-RELEASE.jar \
-DgroupId=com.eclipsesource.j2v8 \
-DartifactId=j2v8_macos_x86_64 \
-Dversion=5.1.1-RELEASE \
-Dpackaging=jar参数说明:
-Dfile:jar 文件路径-DgroupId:组织 ID-DartifactId:构件 ID-Dversion:版本号-Dpackaging:打包类型
构建
标准构建:
mvn clean install强制更新依赖:
mvn clean install -U当远程仓库有新版本时,-U 参数强制检查更新。
跳过检查加速构建:
mvn clean install -Dmaven.test.skip=true -Dcheckstyle.skip=true适用于本地快速验证,跳过测试和代码检查。
离线模式编译:
mvn compile -o -Dmaven.test.skip=true -Dcheckstyle.skip=true-o 参数使用本地缓存,不下载新依赖。
常见问题
依赖下载失败
现象:构建时报错 Could not find artifact
原因:
- 仓库地址错误或不可访问
- 私服权限不足
- 网络超时
解决方案:
- 检查
settings.xml中仓库配置 - 使用
-U参数强制更新 - 检查网络和认证信息
版本冲突
现象:运行时报 NoSuchMethodError 或 ClassNotFoundException
原因:不同依赖引入了同一构件的不同版本
解决方案:
# 查看依赖树
mvn dependency:tree
# 排除冲突依赖
<dependency>
<groupId>com.example</groupId>
<artifactId>example-lib</artifactId>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</exclusion>
</exclusions>
</dependency>总结
- 配置阿里云镜像加速依赖下载
- 使用
mvn install:install-file安装本地 jar - 常用构建参数:
-U强制更新、-Dmaven.test.skip跳过测试、-o离线模式 - 遇到依赖问题可用
dependency:tree排查
