2017-05-26 124 views
0

我正嘗試將一個遺留項目從Ant遷移到Maven。我面臨的主要問題是我們之前用於Ant的lib文件夾中有多個jar文件。現在有200多個罐子,我相信也可能有一些重複。有沒有辦法從jar列表中生成一個pom.xml文件。我現在看到的唯一選項是在Maven回購中逐一搜索並逐一添加它們。有沒有更簡單的方法來做到這一點?從ant lib/jar文件夾創建Maven依賴關係

感謝, 阿莫爾

+0

擁有一個單一的模塊大約200 + jar的聲音,像這個jar包含太多..是的,這樣做手動使你確定你檢查了每個jar的,如果他們真的有必要......這也是一個步驟遷移(刪除未使用的)... – khmarbaise

+0

是的,通過這些工作。也打破了模塊,但我仍然必須在pom中添加大約100多個罐子,並且必須手動從maven中獲取他們的groupid等。那就是我正在尋找的東西。如果有什麼能夠讓我回到細節。像API一樣,我可以使用 – Amol

+0

查看@JF Meier寫的答案......可以讓它變得更簡單... – khmarbaise

回答

0

我經歷了類似的問題,工作(Ant的罐子是不是SVN/GIT中的一部分,但在網絡驅動器)。我寫了一個腳本,大致做了以下內容:

  1. 枚舉依賴的所有jar文件(或者可能是依賴)
  2. 以他們的SHA1值,並尋找他們MavenCentral。如果罐子直接從那裏複製,你會找到它們。但要小心:可以有相同版本號的同一個罐子的不同版本。
  3. 從罐子中取出類並在MavenCentral(類名搜索)中搜索它們。這可以讓你確定一個好數量的groupId:artifactId。版本是棘手的,因爲它們共享相同的類。
  4. 使用文件名及其結尾(如junit-4.12.jar)從MavenCentral中猜測工件。

這樣你就可以在你的罐子和MavenCentral之間得到一個近似的映射。這顯然必須手動更正,並且您也可能會發現不是來自MavenCentral的jar,而是必須添加到Maven repo。

如果你有完整的列表,從它們創建一個pom.xml。嘗試建立你的項目。如果不構建,添加缺少的依賴關係。

最後,使用dependency:analyzehttps://maven.apache.org/plugins/maven-dependency-plugin/analyze-mojo.html消除您的pom中不必要的依賴關係。