Maven Shade minimizeJar 将 H2 切碎,即使配置为不

Posted

技术标签:

【中文标题】Maven Shade minimizeJar 将 H2 切碎,即使配置为不【英文标题】:Maven Shade minimizeJar shreds H2 even when configured not to 【发布时间】:2014-08-14 15:40:41 【问题描述】:

有人在使用 H2 时使用过 maven shade 的 minimizejar 功能吗?

像documentation 一样,我将 pom.xml 文件配置为让 minimizejar 忽略 H2

              <minimizeJar>true</minimizeJar>
              <filters>
                <filter>
                   <artifact>com.h2database:h2</artifact>
                   <includes>
                       <include>**</include>
                   </includes>
                </filter>
...

minimizeJar 粉碎 H2 和许多关键类文件丢失(如 Driver.class 和 Engine.class)这似乎不会发生在 Maven 的其他包中。

我的完整 pom.xml 是 here(没有 minimizeJar 功能)。

【问题讨论】:

您是否在使用 1.5 的 pom 中尝试过新版本(2.3)的 maven-shade-plugin ? @khmarbaise 我会试试看,我不知道我已经过时了。 如果您查看此页面:maven.apache.org/plugns,您将了解最新的插件版本。此外,我建议订阅 maven-users 或至少订阅 maven-announcement 列表(maven.apache.org 上的地址)以获取通知。 【参考方案1】:

问题是 maven-shade 的版本太旧了。在 maven-shade 1.6 中部署了忽略文件的功能。

“从 1.6 版开始,minimizeJar 将尊重之前的类 专门标记为包含在过滤器中。"

【讨论】:

以上是关于Maven Shade minimizeJar 将 H2 切碎,即使配置为不的主要内容,如果未能解决你的问题,请参考以下文章

将 maven-bundle-plugin 与 maven-shade-plugin 一起使用

maven-shade-plugin插件

maven-shade-plugin 错误:在“资源”的 org.apache.maven.plugins.shade.resource.ManifestResourceTransformer 中找不

[Apache Maven Shade Plugin] [example] [001] 官方例子:includes-excludes

Netbeans:项目主神器通过maven-shade-plugin处理

maven-shade-plugin 和自定义包装类型