【Maven】Maven离线项目爬坑笔记
一、背景
- 笔记本不能联互联网。
- 局域网私服也暂时不能用。
由以上原因,将笔记本上的Maven
设置为离线模式。使用STS
将项目导入之后,项目排错如下。
二、错误以及解决方法
1、设置Maven
为离线模式。
1)Settings.xml配置如下:
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<localRepository>D:\mvn-repo\repository</localRepository>
<pluginGroups></pluginGroups>
<proxies></proxies>
<servers></servers>
<mirrors>
<mirror>
<id>center</id>
<name>*</name>
<mirrorOf>central</mirrorOf>
<url>file://D:\mvn-repo\repository</url>
</mirror>
</mirrors>
<offline>true</offline>
<profiles>
<profile>
<id>jdk8</id>
<activation>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerversion>1.8</maven.compiler.compilerversion>
</properties>
</profile>
</profiles>
<activeProfiles>
<activeProfile>jdk8</activeProfile>
<activeProfile>nexus</activeProfile>
</activeProfiles>
</settings>
2)Eclipse maven设置
- Offline✔
- Download Artifact Sources 去掉勾,否则一直下载源码。
3) 查看 _remote.repositories
中 mirror.id
将 settings.xml 设置的 <mirror>
节点的id使其一直。
例如:下面 guava-retrying
#NOTE: This is a Maven Resolver internal implementation file, its format can be changed without prior notice.
#Wed Feb 23 18:49:36 CST 2022
guava-retrying-2.0.0-sources.jar>alimaven=
则修改 settings.xml为
<mirrors>
<mirror>
<id>alimaven</id>
<name>*</name>
<mirrorOf>central</mirrorOf>
<url>file://D:\mvn-repo\repository</url>
</mirror>
</mirrors>
4)删除仓库中的_remote.repositories
文件,否则还是回到远程仓库去找
如以上 3)不起作用。则使用此方法。
# windows
for /r %i in (_remote.repositories) do del %i
2、Maven传递依赖无法引入
项目中maven
依赖传递中依赖包无法引入。例如:项目引入A.jar,A.jar依赖B.jar,但是B.jar不能正常引入项目。
问题原因以及解决方法
排查发现造成此问题原因:maven仓库中,在A.jar同级目录中的A.pom文件编写有问题。
解决方法:将jar解压,在META-INF\maven
找到pom.xml文件,将内容覆盖到A.pom文件中就能解决。
好学若饥,谦卑若愚
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?