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都是很熟,因此在使用中遇到了一些问题,表现在:在本地中引入 ...
随机推荐
- nginx中有关命令和日志切割,配置文件加载的详细阐述
一.Nginx简介 Nginx (“engine x”) 是俄罗斯人Igor Sysoev(塞索耶夫)编写的一款高性能的 HTTP 和反向代理服务器.Nginx 已经在俄罗斯最大的门户网站── Ram ...
- CentOS6下安装Java jdk1.7.0_10和 maven
安装步骤如下: 1. 下载JDK7.0_10 (jdk-7u10-linux-i586.tar.gz) 地址: 2. 卸载系统自带的开源JDK 查看是否安装JDK rpm -qa | grep jav ...
- js中“||”和“&&”的高级用法
例1:用于赋值&&:从左往右依次判断,当当前值为true则继续,为false则返回此值(是返回未转换为布尔值时的原值哦)|| : 从左往右依次判断,当当前值为false则继续,为tru ...
- Android下如何计算要显示的字符串所占的宽度和高度
Rect bounds = new Rect(); String text = "Hello World"; TextPaint paint; paint = findViewBy ...
- LeetCode: 598 Range Addition II(easy)
题目: Given an m * n matrix M initialized with all 0's and several update operations. Operations are r ...
- 浅析Jupyter Notebook
一 概述 Jupyter Notebook是以web交互式的编程接口,是IPython notebook的升级版本.主要是针对python,另外支持运行 40 多种编程语言.Jupyter可以在个人机 ...
- Unicode编码下字符串转换
VC\MFC当中CString.string.char.char*.char数组.int等类型之间的转换令人晕头转向,特地搜集多篇文章资料,利用代码实例等清晰的理清他们之间的关系和如何转换,其实非常简 ...
- solidity 学习笔记(5)接口
接口:不用实现方法,仅仅定义方法. pragma solidity ^; contract cat{ //cat实际上实现了接口animalEat,因为他们有相同的方法. string name; f ...
- pytest框架(一)
代码示例一 # coding=utf-8 def func(x): return x + 1 def test_answer(): assert func(3) == 5 运行结果 E:\pyYouY ...
- 使用htmlparser爬虫技术爬取电影网页的全部下载链接
昨天,我们利用webcollector爬虫技术爬取了网易云音乐17万多首歌曲,而且还包括付费的在内,如果时间允许的话,可以获取更多的音乐下来,当然,也有小伙伴留言说这样会降低国人的知识产权保护意识,诚 ...