热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

读取jar文件的sha1码,请求maven官方的solrsearch接口查询该jar文件所对应的maven坐标信息...

版权声明:本文为博主原创文章,未经博主允许不得转载。importcom.google.gson.JsonObject;importcom.google

版权声明:本文为博主原创文章,未经博主允许不得转载。

import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import org.apache.commons.io.IOUtils;import java.io.*;
import java.net.URL;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.HashMap;
import java.util.Map;/*** 读取jar文件的sha1码,请求maven官方的solrsearch接口查询该jar文件所对应的maven坐标信息* Created by Nihaorz on 2017/4/20.*/
public class MakeMavenInfo {public static void main(String[] args) throws IOException, NoSuchAlgorithmException {long start = System.currentTimeMillis();File dir = new File("C:\\Users\\Administrator\\Desktop\\jars");for (File jar : dir.listFiles()) {String sha1 = getSha1ByFile(jar);Map map = getMavenInfoBySha1(jar, sha1);System.out.println(map);}long end = System.currentTimeMillis();System.out.println("耗时:" + (end-start)/1000 + "秒");}/*** 根据jar包输入流获取该文件的sha1码* @param file* @return* @throws IOException* @throws NoSuchAlgorithmException*/public static String getSha1ByFile(File file) throws IOException, NoSuchAlgorithmException {MessageDigest sha1 = MessageDigest.getInstance("SHA1");FileInputStream fis = new FileInputStream(file);byte[] data = new byte[1024];int read;while ((read = fis.read(data)) != -1) {sha1.update(data, 0, read);}byte[] hashBytes = sha1.digest();StringBuffer sb = new StringBuffer();for (int i = 0; i getMavenInfoBySha1(File jar, String sha1){Map map = new HashMap();String url = "http://search.maven.org/solrsearch/select?q=1:\"";StringBuilder sb = new StringBuilder();sb.append(url).append(sha1).append("\"&rows=20&wt=json");map.put("jarName", jar.getName());try {String jsonStr = IOUtils.toString(new URL(sb.toString()));JsonObject json = new JsonParser().parse(jsonStr).getAsJsonObject();JsonObject obj = json.getAsJsonObject("response").getAsJsonArray("docs").get(0).getAsJsonObject();map.put("groupId", obj.get("g").getAsString());map.put("artifactId", obj.get("a").getAsString());map.put("version", obj.get("v").getAsString());map.put("packaging", obj.get("p").getAsString());map.put("result", "true");} catch (Exception e) {e.printStackTrace();map.put("result", "false");System.out.println(sb);}return map;}}

 

参考:  http://www.sha1-online.com/sha1-java/

     http://search.maven.org/#api

转:https://www.cnblogs.com/nihaorz/p/6738414.html



推荐阅读
author-avatar
mobiledu2502876597
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有