2017-05-26 88 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中不必要的依赖关系。