java校验maven下载的jar文件
有时候maven真的很坑!
有时候提示invalid LOC header (bad signat signature),
但又有时候什么都不提示,工程报错,情况有肯多中,不知道大家遇到过几种诡异的.
很多人说加-U参数或在maven插件选择强制刷新等操作,但很不好使,一点用都没有.
今天我就遇到POM提示第一行错误,这怎么可能?其他任何地方都不报错,用mvn命令的时候才能看到jar invalid.
我还遇到整个spring的项目只有test报错,其他的都不报错,编辑器里提示的Unknown Error~
真没法玩了~我知道肯定有一个或几个jar下载的有问题.但就算你知道了难道一个一个去找删?一个还好说,有时候5,6个真是浪费时间.
不如就写个代码跑一下吧~
public class MvnCheckJar {
public static void main(String[] args) throws Exception {
String localMvnPath = "F:/mvnlib";
// 遍历文件夹,找出jar\pom和效验文件进行对比,如果不相符,则删除
getFile(new File(localMvnPath), "jar,pom");
System.out.println("完毕");
}
public static void getFile(File path, String suffixs) throws Exception {
String[] suffixs_ = new String[] {};
if (suffixs != null) suffixs_ = suffixs.split(",");
if (path.isFile()) {
for (String suffix : suffixs_) {
if (path.getName().endsWith(suffix)) {
// System.out.println(path.getAbsolutePath() );
handler(path);
}
}
} else {
File[] ff = path.listFiles();
if(ff!=null)
for (File x : ff) {
getFile(x, suffixs);
}
}
}
/**
* 验证,发现不匹配则删除
*
* @throws IOException
*/
public static void handler(File f) throws Exception {
File fsha1 = new File(f.getAbsolutePath() + ".sha1");
if (fsha1.exists()) {
String sha1 =
FileUtils.readFileToString(fsha1, "utf-8").replaceAll("(?m).*(\\w{40}).*", "$1").replaceAll("\\n|\\r", "");
String currsha1 = sha1(f);
if(!sha1.equals(currsha1)){//如果不等,则删除 当前文件和sha1
// System.out.println("sha1file: " + sha1 );
fsha1.delete();
f.delete();
System.out.println(sha1 + " , " + currsha1 + " , " + f.getAbsolutePath());
}
} else {
f.delete();
}
}
public static String sha1(File f) throws Exception {
try (FileInputStream fis = new FileInputStream(f)) {
return org.apache.commons.codec.digest.DigestUtils.sha1Hex(fis);
}
}
}
java校验maven下载的jar文件的更多相关文章
- maven下载的jar文件出现invalid LOC header (bad signature)
有的时候maven下载了相对应的jar文件,但是某些类无法被引入,在eclipse打开该jar文件,发现相对应的类是invalid LOC header (bad signature),这时把mave ...
- 手把手教你如何把java代码,打包成jar文件以及转换为exe可执行文件
1.背景: 学习java时,教材中关于如题问题,只有一小节说明,而且要自己写麻烦的配置文件,最终结果却只能转换为jar文件.实在是心有不爽.此篇博客教你如何方便快捷地把java代码,打包成jar文件以 ...
- maven手动增加jar文件
maven手动增加jar文件 在cmd界面输入: mvn install:install-file -Dfile=D:\com.ibm.mq.jar -DgroupId=com.ibm.mq -Dar ...
- Maven使用第三方jar文件的两种方法
转于http://blog.csdn.net/youhaodeyi/article/details/1729116 主要用于回查与标记 在Maven中,使用第三方库一般是通过pom.xml文件中定义的 ...
- Maven使用第三方jar文件的两种方法 转
在Maven中,使用第三方库一般是通过pom.xml文件中定义的dependency从远程repository中下载该库.但是如果库文件是公司内部的库,或者在本地而不能通过远程repository下载 ...
- springboot 多模块 maven 项目构建jar 文件配置
最近在写 springboot 项目时,需要使用多模块,遇到了许多问题. 1 如果程序使用了 java8 的一些特性,springboot 默认构建工具不支持.需要修改配置 ... </buil ...
- Maven使用第三方jar文件的两种方法<转>
http://www.cnblogs.com/sekai/p/5932206.html 今天用上了.. ===================== 在Maven中,使用第三方库一般是通过pom.xml ...
- maven下载的jar包可以查看源码
1:Maven命令下载源码和javadocs 当在IDE中使用Maven时如果想要看引用的jar包中类的源码和javadoc需要通过maven命令下载这些源码,然后再进行引入,通过mvn命令能够容易的 ...
- Maven打包成Jar文件时依赖包的问题
我们项目中使用到第三方的库文件,这些jar库文件并没有放到Maven中央库上,导致我们需要在项目中自己配置使用.我们的两三个开发人员对Java都是很熟,因此在使用中遇到了一些问题,表现在:在本地中引入 ...
随机推荐
- WPF RichTextBox 插入回车
richtextbox插入回车,开始是这样写的,在win7下运行时没有问题: MyMessageBox.CaretPosition.InsertLineBreak(); MyMessageBox.Ca ...
- Linux打开防火墙telnet端口
检查端口情况:netstat -an | grep 22 关闭端口号:iptables -A INPUT -p tcp --drop 端口号-j DROP ipt ...
- VIM显示utf-8乱码
找到vim的根目录下的vimrc文件打开,加入下面三行,保存.重开vim即可. set encoding=utf-8 set langmenu=zh_CN.UTF-8 language message ...
- solr--搭建全文搜索服务器
1.下载http://www-eu.apache.org/dist/lucene/solr/6.5.0/ 2.新建: 云模式 3.打开浏览器: 简单的中文分词,暂时是一个一个的分词:
- sqlserver2012——EXISTS关键字
1.返回TRUE或者FALSE 如果exists查询存在,则能查询出来 select a.* From 成绩信息 a ’) 2.判断用户登录 ) ) ' set @pwd='xxxxxxx' if e ...
- 从扫码支付想到的超级APP主宰一切,数据!数据!还是数据!
前言 做室内定位的人其实内心都明白:基于指纹方法的移动端定位,无论paper每年出来多少,距离真正的大规模应用的距离还有多么遥远.指纹采集,指纹更新,似乎在生产实践上就是不可能的难题.所有还在基于人工 ...
- 每次移1px的无缝轮播图
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 2017-9-13 NOIP模拟赛[xxy]
全排列 (permutation.cpp/c/pas)Description从 n 个不同元素中任取 m(m≤n)个元素,按照一定的顺序排列起来,叫做从 n个不同元素中取出 m 个元素的一个排列.当 ...
- 剑指Offer的学习笔记(C#篇)-- 从上往下打印二叉树
题目描述 从上往下打印出二叉树的每个节点,同层节点从左至右打印. 一 . 题目解析 了解过二叉树就应该知道,二叉树存在三种遍历方法:前序遍历(根→左→右).中序遍历(左→根→右).后续遍历(左→右→根 ...
- 利用Hough变换识别图像中的直线
引入 近期看到2015年数学建模A题太阳影子定位中的第四问,需要根据附件中视频里的直杆的太阳影子的变化确定拍摄地点.其实确定拍摄地点这个问题并不是十分困难,因为有前三问的铺垫,我们已经得出了太阳影子长 ...