【发布时间】:2010-06-17 15:37:53
【问题描述】:
我正在将一个在其全局 lib/ 目录中包含 71 个 .jar 文件的构建转换为使用 Maven。当然,在该项目的过去十年历史中,许多开发人员从网络上提取了这些内容,并且并不总是将所有必要的版本信息等添加到 VCS 中。
是否有一种简单、自动化的方法可以从这组 .jar 文件转到相应的 <dependency/> 元素以在我的 pom.xml 文件中使用?我希望有一个网页,我可以在其中提交 jar 文件的校验和并取回 XML sn-p。 “maven 存储库搜索”的谷歌点击基本上只是查找基于名称的搜索。据我所知,http://repo1.maven.org/ 没有任何搜索。
更新:GrepCode 看起来它可以找到给定 MD5 校验和的项目。但它没有提供 Maven 需要的特定细节(groupId、artifactId)。
这是我根据接受的答案提出的脚本:
#!/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
【问题讨论】:
-
哇哦!看起来像是一个新的商机。
标签: maven-2