Tôi đang chuyển đổi một bản dựng có 71 .jar
tệp trong thư mục lib/
toàn cầu của mình để sử dụng Maven. Tất nhiên, những điều này đã bị lôi kéo từ web bởi nhiều nhà phát triển trong mười năm qua của lịch sử của dự án này và không phải lúc nào cũng được thêm vào VCS với tất cả thông tin phiên bản cần thiết, v.v.Tìm phiên bản đúng của JAR phù hợp trong kho lưu trữ maven
Có dễ dàng không, cách tự động để chuyển từ tập hợp các tệp .jar
này thành các phần tử <dependency/>
tương ứng để sử dụng trong các tệp pom.xml
của tôi? Tôi hy vọng cho một trang web mà tôi có thể gửi tổng kiểm tra của một tệp jar và lấy lại một đoạn mã XML. Các truy cập google cho 'tìm kiếm kho lưu trữ maven' về cơ bản chỉ là tìm kiếm dựa trên tên. Và http://repo1.maven.org/ không có tìm kiếm nào, theo như tôi thấy.
Cập nhật: GrepCode có vẻ như nó có thể tìm thấy các dự án được kiểm tra MD5. Nhưng nó không cung cấp các chi tiết cụ thể (groupId
, artifactId
) mà Maven cần.
Dưới đây là kịch bản tôi đã đưa ra dựa trên các câu trả lời được chấp nhận:
#!/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! Có vẻ như một cơ hội kinh doanh mới. –