使用 Maven Assembly 插件合并 META-INF/services 个文件
Merging META-INF/services files with Maven Assembly plugin
我正在寻找一种合并 META-INF/services
文件的方法,例如META-INF/services/javax.ws.rs.ext.Providers
,在使用 Maven Assembly 插件构建 jar-with-dependencies
时。我找到了说明如何使用 Maven Shade 插件执行此操作的答案。不幸的是,我们已经广泛使用了 Mave Assembly 插件,目前还不清楚我们如何插入 Maven Shade 插件。
事实证明,某些版本的 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>
我正在寻找一种合并 META-INF/services
文件的方法,例如META-INF/services/javax.ws.rs.ext.Providers
,在使用 Maven Assembly 插件构建 jar-with-dependencies
时。我找到了说明如何使用 Maven Shade 插件执行此操作的答案。不幸的是,我们已经广泛使用了 Mave Assembly 插件,目前还不清楚我们如何插入 Maven Shade 插件。
事实证明,某些版本的 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>