Maven:只复制WEB-INF / lib中选定的jar

时间:2015-12-07 13:47:56

标签: java maven jar

在我的Maven项目中,我有一些应该存在于WEB-INF / lib中的依赖项。我不能将所有的jar放在WEB-INF / lib中,只能放入所选的。如何做到这一点?

我无法使用maven-resources插件,因此我必须在<include>标记内提及整个jar的名称,我需要保持动态。

我尝试使用<packagingExcludes>WEB-INF/lib/*.jar</packagingExcludes>,但这不能让我选择只在lib文件夹中插入选定的jar。

我也尝试将<scope>provided</scope>用于某些jar,但由于这个原因,jar的名称不会被添加到manifest.mf文件中的classpath字段中。

请提出一些解决方案。提前致谢!

2 个答案:

答案 0 :(得分:0)

您可以使用Assembly插件和自定义程序集描述符。在描述符中,您可以设置要使用其工件ID,组ID,版本和范围复制的jar。它还支持正则表达式。 https://maven.apache.org/plugins/maven-assembly-plugin/advanced-descriptor-topics.html

答案 1 :(得分:0)

这可能不是在WEB-INF/lib/文件中打包WAR嵌套目录的内容的最佳方式,但How to put all required jars in a lib folder inside the final jar with maven问题中提供的实现(使用{{ 1}}插件)解决了我将{em>所有依赖的jar包装到我最后一个jar的maven-dependency-plugin目录中的JAR需求。奇怪的是,这是一个常见问题,有许多不同的解决方案。这个实现实际上将jar封装在嵌套的lib/目录中,而其他实例则提取了我的依赖jar的内容并将它们的类放在我的类旁边。所以这可能会让你更接近,但可能不是处理lib/文件库库的官方方式。