Я конвертирую сборку с 71 .jar
файлами в свой глобальный каталог lib/
для использования Maven. Конечно, они были вытащены из Интернета множеством разработчиков за последние десять лет истории этого проекта и не всегда добавлены в VCS со всей необходимой информацией о версии и т.д.
Есть ли простой, автоматический способ перехода из этого набора файлов .jar
в соответствующие элементы <dependency/>
для использования в моих файлах pom.xml
? Я надеюсь на веб-страницу, где я могу представить контрольную сумму файла jar и вернуть фрагмент XML. Гугл-хиты для поиска maven-репозитория в основном используют поиск по именам. И http://repo1.maven.org/ не имеет никакого поиска, насколько я вижу.
Обновление: GrepCode похоже, что он может найти проекты с учетом контрольной суммы MD5. Но он не содержит конкретных деталей (groupId
, artifactId
), которые нужны Maven.
Здесь script я пришел на основе принятого ответа:
#!/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