繁体   English   中英

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

[英]Maven : Copy only selected jars inside WEB-INF/lib

在我的Maven项目中,我具有某些依赖关系,这些依赖关系应该存在于WEB-INF / lib中。 我不能将所有jar放到WEB-INF / lib中,只能放到选定的jar中。 如何去做呢?

我不能使用maven-resources插件,因为那样的话,我不得不在<include>标记内提及整个jar的名称,并且需要保持动态。

我尝试使用<packagingExcludes>WEB-INF/lib/*.jar</packagingExcludes>但是这没有给我一个选项,只能在lib文件夹中插入选定的jar。

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

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

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

这可能不是将WEB-INF/lib/嵌套目录的内容打包到WAR文件中的最佳方法,但是在如何将所有必需的jar放入带有maven的最终jar中的lib文件夹的问题中提出了实现。 (使用maven-dependency-plugin插件)解决了将所有相关jar捆绑到最终jar的lib/目录中的JAR需求。 奇怪的是,这是一个常见问题,有许多不同的解决方案。 此实现实际上将jar捆绑在嵌套的lib/目录中,而其他示例则提取了我依赖的jar的内容,并将其类放在我的类旁边。 因此,这可能使您更接近一点,但可能不是处理WAR文件的库deps的正式方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM