目录
1、没有下载成功
1.1 具体情况
在Maven仓库中,Jar或其他相关文件的扩展名是“lastUpdated”,如下图所示:
javadoc是文档下载失败,sources是源码下载失败,但是jar包没问题
以下这种是jar下载失败
1.2 原因
文件下载的时候是以lastUpdated为扩展名,下载成功后Maven会将lastUpdated扩展名去掉。
一般是网络问题下载过程中断开,导致没有下载完成,这种要在仓库删除,重新下载即可。但是经常使用maven,这种文件可能会很多,一个一个删除很麻烦,可以使用以下的脚本文件批量删除。
1.3 脚本
下载里面任意一个bat文件都可以,下载以后编辑内容,里面有注释,修改提示的地方,运行即可,点击下方链接
链接(提取码 nkuf)
1.4 多次删除下载依旧是lastUpdated
排除网络的问题,多次重试,其它jar都可以下载,只有它不行,十有八九是你的jar包依赖信息写错了╮(╯▽╰)╭。
2、下载完成但是内部损坏
2.1 问题
看起来jar包没问题,但是程序运行的时候报错,比如找不到某个jar中的某个类,或者是jar内部的类报错,很有可能就是jar有问题,可以通过校验工具测试是否jar包有问题。
工具地址:文件校验工具
提取码:qkw7
2.2 文件校验
直接将工具打开,拖动jar包到工具的窗口,会出现如下标注1所示,其中有一项SHA1,后面有一串码,
然后以文本形式打开同一个Jar包文件夹下的以jar.sha1结尾的文件如图标注2所示,会有如标注3所示的一串码,进行对比,如果相同,那这个jar包就是正常的。如果不一样,jar就是下载的有问题。
2.3、HASH加密原理
- HASH加密算法:MD5,SHA1,CRC32等,他们之间的区别,加密强度不同,具体体现为密文的长度。
- 它们是不可逆的,不能通过密文反推出明文。
- 算法确定的前提下,输入不变,输出不变。
- 算法确定的前提下,输入细微变化,输出一定变化。校验文件就是基于这个特点,服务器加密结果和本地加密结果不一致,那么它的数据肯定不一样了。
- 算法确定的前提下,不管输入的数据有多大或者多小,输出的加密方式的长度是确定的。
2.4、根据依赖信息定位jar包位置
示例jar,从以下jar找到它所在的jar包。
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<scope>provided</scope>
</dependency>
以上这个jar所在的位置就是Maven仓库所在的根目录下的javax文件夹下的servlet文件夹下的jsp文件夹下的具体版本号下的文件夹中,就是它所在的位置
Maven根目录\repository\javax\servlet\jsp\jsp-api\2.2
2.5、重新下载Jar包
- 根据上面的步骤找到所在的jar包位置,删除jar所在目录的全部文件。
- 点击工程→alt+F5→勾选想要更新jar的项目,点击ok。
3、本地 Jar 包添加到 Maven 本地仓库
通过cmd或者idea的
执行命令
mvn install:install-file -Dfile=E:\client-api-1.0.0.jar -DgroupId=com.wzw -DartifactId=api -Dversion=1.0.0 -Dpackaging=jar
参数值
-Dfile=E:\client-api-1.0.0.jar jar包位置
-DgroupId=com.wzw 引入时候的groupId值
-DartifactId=api 引入时候的DartifactId值
-Dversion=1.0.0 引入时候的version值
-Dpackaging=jar 包的类型
对应的引入方法
<dependency>
<groupId>com.wzw</groupId>
<artifactId>api</artifactId>
<version>1.0.0</version>
</dependency>
4、使用idea打包,提示找不到主类
pom.xml中缺少信息
确认以下信息
打包以后再用压缩包软件打开压缩包,看看有没有信息,没有的话还是会提示缺少主类信息
包没报错,但是引用不了
okhttp3引入是这样的效果
点开以后提示当前编译版本是1.4.2,需要升级到1.6.0
升级,在idea的setting中
安装完成以后,重启一下,正常了
5、多模块项目,单独打包子项目报错
-
错误:
多模块项目,单独打包子项目报错,错误信息找不到该子项目所依赖的其它子项目,
错误信息
-
解决:
先在父项目install
,再去想要打包的子工程package
即可