Я конвертирую сборку, в которой содержится 71 .jar
файлов в своем глобальном каталоге lib/
, чтобы использовать Maven. Конечно, они были вытащены из Интернета множеством разработчиков за последние десять лет истории этого проекта и не всегда добавлены в VCS со всей необходимой информацией о версии и т. Д.Поиск правильной версии JAR в репозитории maven
Есть ли простой, автоматический способ перехода от этого набора файлов .jar
к соответствующим элементам <dependency/>
для использования в моих pom.xml
файлах? Я надеюсь на веб-страницу, где я могу представить контрольную сумму файла jar и вернуть фрагмент XML. Гугл-хиты для поиска maven-репозитория в основном используют поиск по именам. И http://repo1.maven.org/ не имеет никакого поиска, насколько я вижу.
Обновление: GrepCode выглядит так, что он может найти проекты с учетом контрольной суммы MD5. Но он не содержит конкретных деталей (groupId
, artifactId
), которые нужны Maven.
Вот сценарий я придумал на основе принятого ответа:
#!/bin/bash
for f in *.jar; do
s=`md5sum $f | cut -d ' ' -f 1`;
p=`wget -q -O - "http://www.jarvana.com/jarvana/search?search_type=content&content=${s}&filterContent=digest" | grep inspect-pom | cut -d \" -f 4`;
pj="http://www.jarvana.com${p}";
rm -f tmp;
wget -q -O tmp "$pj";
g=`grep groupId tmp | head -n 1 | cut -d \> -f 3 | cut -d \< -f 1`;
a=`grep artifactId tmp | head -n 1 | cut -d \> -f 3 | cut -d \< -f 1`;
v=`grep version tmp | head -n 1 | cut -d \> -f 3 | cut -d \< -f 1`;
rm -f tmp;
echo '<dependency> <!--' $f $s $pj '-->';
echo " <groupId>$g</groupId>";
echo " <artifactId>$a</artifactId>";
echo " <version>$v</version>";
echo "</dependency>";
echo;
done
Woohoo! Похож на новую деловую возможность. –