给定一个充满jar的lib文件夹,对pom.xml进行反向工程?

时间:2015-11-22 19:22:22

标签: maven

标题说明了一切。

如果lib文件夹中装满了jars,是否可以对pom.xml依赖项进行反向工程?

即。在给出jar名称和/或SHA1校验和的情况下,发现公开提供的Maven工件。

这是一个天真的尝试,效果不好,因为搜索通常会返回太多匹配:

#!/usr/bin/python

# Mavenize a lib folder, converting jars into dependencies

import os
import sys
import urllib2
import json

for file in os.listdir(sys.argv[1]):
        url = "http://search.maven.org/solrsearch/select?rows=1&wt=json&q=" + file
        response = urllib2.urlopen(url)
        jsonStr = response.read()
        jsonObj = json.loads(jsonStr)
        if(jsonObj["response"]["numFound"] > 0):
                print "<dependency><!-- for " + file + "-->"
                print "  <groupId>" + jsonObj["response"]["docs"][0]["g"] + "</groupId>"
                print "  <artifactId>" + jsonObj["response"]["docs"][0]["a"] + "</artifactId>"
                print "  <version>" + jsonObj["response"]["docs"][0]["latestVersion"] + "</version>"
                print "</dependency>"

1 个答案:

答案 0 :(得分:0)

如果maven生成的那些jar文件那么是可能的。在其他情况下,如果没有额外的步骤,例如尝试从mvnrepository等中查找组ID和版本,则无法实现。