Maven导入jar包失败问题,lastUpdated问题解决
Maven导入jar包问题解决
- 1、问题来源
- 2、问题场景和解决方案
- 2.1、groupId,artifactId和version依赖有问题
- 2.2、Maven版本问题
- 2.3、maven仓库设置问题
- 2.4、lastUpdated问题
- 2.4.1、脚本删除lastUpdated
- 2.4.2、everything删除lastUpdated
- 3、终极解决方案 : pom system 依赖
- 4、补充说明(私有jar 无pom依赖情况)
1、问题来源
从git或者svn上拉取了项目,然后as a meven project 后发现文件中有红色无法导入的问题,是不是这种现象经常遇到。
嗯,没有错,这个可能是同事提交的时候没有测试,提交了错误的依赖,也可能是你因为网络原因确实没有拉下来。
在这里总结下可能遇到的几种情况。
2、问题场景和解决方案
2.1、groupId,artifactId和version依赖有问题
可能是依赖包确实有问题。例如多添加了一个字母,版本错误等等。可以使用maven仓库验证下。
验证地址:https://mvnrepository.com/
举个栗子:
<dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>3.14</version>
</dependency>
打开连接地址,输入poi查询,可以对查询到的结果点击查看。
这个有就可以确认依赖的groupId,artifactId和version是没有问题的。
2.2、Maven版本问题
因为大家使用的Maven版本不同,IDEA对Maven支持的也不同,我这里使用的2018.3版本就无法支持最新的Maven版本。
可以根据IDEA下载的时候支持的那个版本,之后的版本可能是无法支持的。
具体Maven下载地址:https://maven.apache.org/download.cgi
2.3、maven仓库设置问题
我们在开发的时候经常会使用内部封装的一些包,例如一些通用的工具包,假如我们使用了公用的Maven仓库无法拉取到这些包。
一般我们配置开发环境的时候会配置公司的私有库,我们可以打开下载解压的maven配置文件:
maven是免安装的,解压配置即可:
我放在D:/soft下,打开setting文件修改,例如:
<localRepository>D:\mvnrepositories</localRepository>
<servers><server><id>releases</id><username>admin</username><password>admin</password></server><server><id>snapshots</id><username>admin</username><password>admin</password></server>
</servers>
<mirrors><mirror><id>nexus</id><url>http://xx.xx.xx.xx:xx/</url><mirrorOf>central</mirrorOf></mirror><mirror><id>alimaven</id><name>aliyun maven</name><url>http://maven.aliyun.com/nexus/content/groups/public/</url><mirrorOf>central</mirrorOf></mirror>
</mirrors>
- <mirrors></mirrors> 中存放的是maven仓库地址。
- <servers></servers> 存放的是访问nexus的账号密码。
- <localRepository></localRepository> 是依赖包本地存放的地址,最好不要放在c盘。
注意: 要把公司的私有库放阿里云上面。
假如刚才公司不知道公司私有库,就去找同事问下。
对于 <mirrors></mirrors> 中的私有库,可以使用前面的http://IP:Port直接浏览器访问,输入<servers></servers> 中的账号密码登录即可。
假如可以访问成功,就证明maven依赖库本地是可以访问公司私有库,也就是网络没啥问题。
2.4、lastUpdated问题
当我们拉取jar包失败的时候,本地库就会生成lastUpdated 文件。
拉取成功的使用可以在本地仓库中查看到jar包。
查看的路径和groupId,artifactId和version有关。通常是 setting 文件中的地址 加上 groupId,artifactId 和 version。
例如fastJson , D:\mvnrepositories + com + alibaba + fastjson + version
拉取失败的情况:
删除lastUpdated 可以挨个查找,假如多个依赖有问题的话,查找删除太麻烦。
也可以全部依赖库删除再重新拉取,但是多次拉取耗费时间过长。
2.4.1、脚本删除lastUpdated
bat脚本删除:
set REPOSITORY_PATH=D:\mvnrepositories
rem 正在搜索...
for /f "delims=" %%i in ('dir /b /s "%REPOSITORY_PATH%\*lastUpdated*"') do (del /s /q %%i
)
rem 搜索完毕
pause
新建txt文件,ctrl + v 放入脚本,修改扩展名为 .bat。
其中 REPOSITORY_PATH 后的地址是 setting 文件 <localRepository></localRepository> 中的地址。
脚本来自 https://blog.csdn.net/qq_36095679/article/details/97271879,具体细节可以访问查看。
2.4.2、everything删除lastUpdated
推荐软件everything, 下载地址 https://www.voidtools.com/zh-cn/。
安装后可以对lastUpdated 检索,比windows自带检索速度快。
ctrl + A 权限,右键直接删除即可。
删除完成之后再次maven reimport。
使用 IDEA 推荐插件 maven helper 对maven的操作比较友好。
点击项目右键执行:
3、终极解决方案 : pom system 依赖
假如以上的方案都不行怎么办。我们还有终极解决方案 : pom system 依赖。
也是依赖第三方的jar包的方案解决方案:
- 项目根目录下创建 lib 放入需要依赖的jar
- 修改pom文件
新增 scope 为 system
scope 的依赖传递规则为,其中 system 与 provider 一致 在编译和测试时有效:
修改示例:
<dependency><groupId>com.xx.xx</groupId><artifactId>xx-xx</artifactId><version>15.8.0</version><scope>system</scope><systemPath>${project.basedir}/lib/xx.jar</systemPath>
</dependency>
- 把lib 中的jar放入项目依赖libraries
点击 File 选择 Project Structure 修改项目设置:
选择 + ==> Java 找到 项目下jar包,之后添加即可。
增加的时候,可以选择source或者classes,好像两种都可以,这个不太确定。
4. pom文件插件打包配置
以上1-3就可以解决本地无法运行的问题,但是还是无法打包,这个时候就需要在pom文件 builder中配置。
<resources><resource><directory>${project.basedir}/lib</directory><targetPath>/BOOT-INF/lib/</targetPath><includes><include>**/*.jar</include></includes></resource>
</resources>
4、补充说明(私有jar 无pom依赖情况)
关于lastUpdated 问题,也就是无法从私服拉取jar包,可能由于网络原因下载失败,按照原来的访问删除重新拉取即可。
特别注意
也存在一种情况,私服的jar包本身就没有pom文件,所以怎么拉取都会失败!!!!!!
也就导致pom文件依赖再拉取都会不成功!
xxxx-15.8.0.jar
xxxx-15.8.0.jar.lastUpdated
xxxx-15.8.0.jar.sha1
xxxx-15.8.0.pom.lastUpdated
这种情况可以通过 pom system 依赖 进行配置。
在配置 systemPath 时候从项目根路径出发,IDEA 开发会提示路径。
使用 maven 进行打包的时候注意 使用上述 build 进行配置。
<resources><resource><directory>${project.basedir}/lib</directory><targetPath>/BOOT-INF/lib/</targetPath><includes><include>**/*.jar</include></includes></resource>
</resources>
扩展
${project.basedir} 代表项目的路径,以上配置也就是把lib下所有jar 放到 /BOOT-INF/lib 下。
也可以尝试放到resources下,示例:
${project.basedir}/lib 替换为 ${project.basedir}/src/main/resources/lib
打包之后,所有使用到jar包可以传递。
如何判断是否没有pom文件,具体可以解压查看jar包的情况。
Maven导入jar包失败问题,lastUpdated问题解决相关推荐
- maven 导入jar包失败编译代码失败解决方案
现象 假如:auto-build中提示以下信息 Error:java: java.lang.RuntimeException: java.io.IOException: Error reading f ...
- maven导入jar包时冲突的解决
什么是依赖传递 先添加 springmvc 的核心依赖的坐标 <dependencies><dependency><groupId>org.springframew ...
- Maven下载jar包失败的原因- 解决方法汇总
前言 我个人对Maven没有多少研究,仅仅是使用层面,但是有时候在IDEA中配置好Maven,写好pom.xml文件后,经常下载一会就停止了,也就是有些jar包并没有下载成功.我从网上搜了一下,发现大 ...
- maven导入jar包步骤
摘抄地址:http://www.360doc.com/content/17/0705/14/28160904_669065438.shtml 听说maven已近有一段时间了,但是直到今天才搞懂了他的自 ...
- 使用maven导入jar包
我们都经历过自己写代码时有时就要引用一些第三方的jar包,这个我们都会,但在公司里进行团队开发时,是不允许我们自己导入jar包的,是由项目组长之类的统一导入jar包,我们在这里来了解一下这个过程: a ...
- 公司内网搭建spring boot maven下载jar包失败的处理方法
前段时间,部门决定重新搭建新框架,转为现在火热的spring boot.由于之前没有接触过,因此自己在网上找资料学习,学习初期,搭建工程项目时遇到了一个问题:按照教程步骤,在家里成功创建工程,在公司却 ...
- maven导入jar包时总是导入到idea自带maven本地仓库
安装了idea后会有自带的一个maven(.m2文件下). 导入jar包的时候,如果自己安装的maven没有指定本地仓库,那么导入的jar包会导入到idea自带的maven本地仓库中.想要导入到自己安 ...
- idea中maven导入jar包
导入servlet和jsp的jar包 要想在pom.xml中配置一个依赖,必须要知道这个依赖库的坐标:groupId,artifacatId,version 1.可以通过查阅依赖库的资料获取坐标,然后 ...
- maven下载jar包, 反复出现lastUpdated文件
如题, maven无法下载jar包, 并反复出现.lastUpdated结尾文件, 并且在build日志中, 显示 PKIX path building failed: sun.security.pr ...
最新文章
- 从支付宝看大用户规模互联网架构发展
- 【数据结构与算法】之深入解析“石子游戏”的求解思路与算法示例
- python求加速度_如何利用Python 为自然语言处理加速度
- java程序默认包含的包是,Java程序默认引用的包是 答案:java.lang包
- 加密 web.config
- Objective-C 学习笔记1 HelloWorld
- Atitit 图像清晰度 模糊度 检测 识别 评价算法 原理
- 四川信息职业技术学院2019考纲复习
- linux下adb工具的安装目录下,adb工具包如何安装?怎么用?
- 计算机毕业设计选题推荐 -计算机专业毕业设计题目参考大全
- 利用php的GD库封装的海报demo
- 神经网络训练样本的标签,训练图像识别神经网络
- 计算机 打印 速度慢,处理打印机在打印文件时打印速度过慢的原因
- 软件压力测试的手段有注入错误吗,软件错误注入测试技术研究_陈锦富.pdf
- Kubernetes HPA 动态弹性扩缩容
- gss1_GSS简介:网格样式表
- 6 生僻字_蔬菜中的生僻字你知道哪些?
- @kubernetes(k8s)pod服务探针(健康检查)及回调钩子HOOK详解
- css实现盾牌的动画效果
- JaveSE 17 Java基础语法 → 注释奇怪的注释
热门文章
- 无法打开虚拟机“Ubuntu”,ubuntu.vmx获得所有权失败
- python科学记数法转化格式_将科学记数法转换为F
- Memcached完整教程
- 跟涛哥一起学嵌入式 26:深入浅出计算机编码、乱码问题
- 音频编码分析:AAC、MP3、Opus
- 前端团队研发效能提升的探索与实践
- 武汉科技大学计算机复试机试,2019年武汉科技大学考研复试及录取工作方案
- RedHat7.8安装Microsoft Edge浏览器
- [转载]以xilinx为例的低功耗设计
- java-net-php-python-ssm巴音学院餐饮安全与卫生防御管理系统计算机毕业设计程序