【问题标题】:Merging META-INF/services files with Maven Assembly plugin将 META-INF/services 文件与 Maven Assembly 插件合并
【发布时间】:2018-04-06 16:56:33
【问题描述】:

我正在寻找一种方法来合并 META-INF/services 文件,例如META-INF/services/javax.ws.rs.ext.Providers,在使用 Maven Assembly 插件构建 jar-with-dependencies 时。我找到了显示如何使用 Maven Shade 插件做到这一点的答案。不幸的是,我们已经在广泛使用 Mave Assembly 插件,目前还不清楚我们如何插入 Maven Shade 插件...。

【问题讨论】:

  • @khmarbaise:正如我在 OP 中提到的那样,我不想使用 Shade 插件,因为当我已经在使用 Assembly 插件时,我不清楚该怎么做。
  • 很抱歉,不如先试一试看看效果如何……否则不行,因为maven-assembly-plugin不支持你喜欢的……maven-shade-plugin支持随心所欲的合并吗?所以我没有看到其他选择......
  • 组装插件的理念是它永远不会修改内容,只会组装它们。正如@khmarbaise 指出的那样,您的需求已经超出了您对汇编插件的使用,您现在处于创建阴影插件来解决的“修改内容”世界中。 (提示:顺便说一句,你可以同时做,用阴影修改,用组件组装)

标签: java maven maven-assembly-plugin


【解决方案1】:

原来有些版本的Maven Assembly插件可以合并这些文件:

<assembly xmlns="http://maven.apache.org/ASSEMBLY/2.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.0.0 http://maven.apache.org/xsd/assembly-2.0.0.xsd">
    <id>jar-with-dependencies</id>
    <formats>
        <format>jar</format>
    </formats>
    <!-- ... -->
    <containerDescriptorHandlers>
        <containerDescriptorHandler>
            <handlerName>metaInf-services</handlerName>
        </containerDescriptorHandler>
        <containerDescriptorHandler>
            <handlerName>metaInf-spring</handlerName>
        </containerDescriptorHandler>
        <containerDescriptorHandler>
            <handlerName>plexus</handlerName>
        </containerDescriptorHandler>
    </containerDescriptorHandlers>
</assembly>

【讨论】:

  • 为我工作。感谢您的解决方案。
猜你喜欢
  • 2017-06-22
  • 1970-01-01
  • 2012-05-06
  • 2016-07-31
  • 1970-01-01
  • 2019-01-31
  • 2011-09-16
  • 2013-07-06
  • 2014-05-26
相关资源
最近更新 更多