【发布时间】:2021-06-21 12:03:07
【问题描述】:
TL;博士
Maven 的 Resources 插件似乎不尊重资源配置中的excludes 元素。
设置
我有一个大型 Java/Dart 项目,我需要在其中部署一个 WAR 文件,该文件在单独的 JAR 中包含我的 UI 和后端。我想减少部署文件的大小,并且想从 WAR 中删除某些文件夹。基于plugin documentation,我想我可以在我的插件配置中简单地设置excludes,它不会复制不必要的文件夹。然而,似乎 Resources 插件完全忽略了这些,尽管 Maven 模型包包括一个 setExcludes 函数。
当前尝试
到目前为止,我已经尝试了两种主要方法。我的配置如下:
<configuration>
<outputDirectory>${project.build.directory}/${project.build.finalName}</outputDirectory>
<resources>
<resource>
<directory>src/main/webapp</directory>
<excludes>
<exclude>web.xml</exclude>
<exclude>appengine-web.xml</exclude>
<exclude>**/web/_el/*</exclude>
<exclude>WEB-INF/pages/frontend/**</exclude>
<exclude>**/_el/js/frontend/**</exclude>
<exclude>**/_el/dart/app/dashboard/lib/**</exclude>
<exclude>**/_el/dart/app/dashboard/.dart_tool/**</exclude>
</excludes>
</resource>
</resources>
</configuration>
我尝试在 execution 元素内以及在 plugin 元素正下方的外部使用此配置,但两次都被忽略了,并且 一切 在 webapp目录被漫不经心地复制了。
凭直觉,我确实尝试将 filtering 设置为 true,但这只是占用了我计算机中的所有内存,而且它甚至不起作用 - 它所做的处理被复制了。
我也尝试使用 Shade 插件,但很快就放弃了,因为 DontIncludeResourceTransformer 只允许后缀过滤,这对于我的用例来说是不够的。
问题
那我做错了什么?根据文档,我认为插件应该尊重我的excludes 列表并跳过绝大多数文件,但它显然没有这样做。
【问题讨论】:
标签: java maven maven-resources-plugin