Java 从目录创建依赖项

Java 从目录创建依赖项,java,maven,jar,Java,Maven,Jar,有人知道从lib目录创建Maven依赖项的工具吗?我有几个web项目,其中有很多JAR,我想将它们“mavenize”。为每一个JAR寻找合适的依赖关系是一件非常痛苦的事情,似乎可以通过程序来解决。好吧,因为这些JAR(可能)最初不是来自Maven,它们不会包含一个清单来告诉您它们的GAV名称。所以很难看出一个工具如何从一个目录中推断出需要什么。除非你非常幸运,每个jar的文件名中都有确切的arteface ID和版本,在这种情况下,你可以编写一些脚本 你可能无论如何都不想那样。我敢打赌,这些罐

有人知道从lib目录创建Maven依赖项的工具吗?我有几个web项目,其中有很多JAR,我想将它们“mavenize”。为每一个JAR寻找合适的依赖关系是一件非常痛苦的事情,似乎可以通过程序来解决。

好吧,因为这些JAR(可能)最初不是来自Maven,它们不会包含一个清单来告诉您它们的GAV名称。所以很难看出一个工具如何从一个目录中推断出需要什么。除非你非常幸运,每个jar的文件名中都有确切的arteface ID和版本,在这种情况下,你可以编写一些脚本

你可能无论如何都不想那样。我敢打赌,这些罐子中有很多都是可传递的依赖项,你真的不希望它们乱丢在你的POM里


tl;博士咬紧牙关,用手把它麻醉。您可以编写一个脚本,使用一点wget魔法来对抗公共repo或其他东西,以帮助您前进。

您可以编写一个插件,将所有依赖项(使用
system
添加到项目的依赖项列表中。您可以通过查看build helper maven插件来检查如何做到这一点

我强烈反对这样做。听着,如果你打算用Maven做你的蚂蚁猴子生意,就用Ant吧。这会节省你的时间和精力

另一方面,如果你想“Mavenize your build”,你应该真正地正确地将其进行Mavenize,而不是懒惰。解决方案只和你自己做的一样糟糕。如果你懒惰,无论哪种方式,它们都会一团糟,因此所做的努力将是毫无意义的

我建议您使用以下任一方法添加每个依赖项:

并且正确地完成工作。此外,还要安装工件存储库管理器。:) 祝你好运。

Ant2Ivy是一个可以实现这一点的Groovy脚本

尽管名称不同,它也可以创建pom文件()


它会在Maven Central中为您查找名称/哈希,以便创建pom。

这些JAR中有没有已经在Maven Central存储库中?如果是这样的话,你的第一步就是识别他们。(当我在过去做这件事时,它涉及到大量的谷歌搜索…)我知道。做了几次。这就是为什么我在寻找一个能够完成这项工作的工具:)我假设大多数JAR都有一个构建良好的清单,您可以从中获得co ORD,但我可能估计过高。即使它没有找到每个罐子的匹配项,它也会有很大的帮助。我认为,一个合适的工具可以避免传递依赖。只是想知道是否有人知道这样的工具。我同意你的观点,就是用正确的方法来做。必须有意识地添加依赖项。但是,如果人们以创建POM需要很长时间才能开始使用Maven为借口,我宁愿有一个不太完美的POM,也不愿推迟实现。此外,所描述的工具可能会帮助您创建更好的POM,因为它可以解决可传递的依赖关系,向您显示哪些库是必需的。您可以更好地决定在依赖项中指定什么。手动添加它们将是一场混乱。