Maven group library



我有一个网络应用程序,里面有数千个类,装在数百个罐子里,放在几个文件夹中。

我想在本地 maven 存储库中创建一个库,其中包含这些 jar 中的所有类。我可以在我所有的项目中使用这种依赖关系......

就像在IntelliJ IDEA中一样,我创建了一个全局库。选择一个包含子文件夹的 jar 集的文件夹,并设置名称"我的 web 应用程序库"。然后我在我的项目中添加这个全局库。

我已经为几个库建立了一种构造组的方法,在这里描述。但是我有一百个jar文件,并且为每个文件制作新项目。

提前谢谢。

看看 maven shade 插件。

该插件提供了将工件打包在超级罐子中的能力,

您可能想要创建另一个项目,将所有工件作为依赖项进行登记。因此,当您将其包含在项目中时,所有需要的 100 个依赖项都将被传递解析。

Maven Versions插件可以帮助您批量更新此新工件中的许多版本。

更新

如果你所有的 300+ jar 都是完全静态的,即它们的版本是固定的,你可能需要使用 shade 插件重新打包它们。否则,从这个庞大的集合中更新 JAR 版本可能会很麻烦......我无法预测性能,但我的猜测是正常的Maven方法更有效。

关于 Maven 阴影插件的说明:您可能需要将着色库移动到着色包。这就是他们通常为避免库版本冲突而采取的措施。也就是说,如果您的 300+ 库使用 spring-2.0 并且您当前的项目使用 spring-3.1.0 ,则两者都将被包含。因此,为避免冲突,建议将此插件配置为将spring-2.0包移动到不同的包下。

更新 2

如果你的罐子没有被Mavenized,Maven在这里不会有很大的帮助。您可能应该手动合并您的罐子并检查它是否适合您:将多个罐子合并到一个罐子中。

最新更新