我有一个网络应用程序,其中有数千个类,包含在几个文件夹中的数百个jar中。
我希望在本地maven资源库中创建一个库,其中包含来自这些jar的所有类。 我可以在我的所有项目中使用这个dependensy ......
在IntelliJ IDEA中,我创建了一个全局库。选择一个包含子文件夹的jar文件夹,并设置名称“My web-app libs”。然后我在我的项目中添加了这个全局库。
我为几个库创建了一个构造组的方法,描述了here。但我有一百个jar文件和愚蠢的新项目。
提前谢谢。
答案 0 :(得分:1)
此插件提供了将工件打包在超级jar中的功能,
答案 1 :(得分:0)
您可能希望创建另一个项目,将所有工件作为依赖项进行登记。因此,当您将其包含在项目中时,所有需要的100个依赖项都将被传递解决。
Maven Versions插件可以帮助您批量更新此新工件中的许多版本。
<强>更新强>
如果所有300多个罐子都是完全静止的,即它们的版本是固定的,您可能需要使用阴影插件重新包装它们。否则,从这个巨大的集合中更新JAR的版本可能是一个麻烦...我无法预测性能,但我的猜测是正常的Maven方法更有效。
关于Maven shade插件的说明:您可能需要将着色库移动到着色包中。这是他们通常采取的措施,以避免库版本冲突。即如果您的300多个库使用spring-2.0
并且您当前的项目使用spring-3.1.0
,则无论如何都会包含它们。因此,为了避免冲突,建议配置此插件以将spring-2.0
包移动到不同的包中。
更新2
如果你的罐子没有被mavenized,Maven在这里不会有很大的帮助。您可能应该手动合并您的罐子并检查它是否适合您:Merging Multiple Jars in to a Single Jar。