我或多或少地解决了这个问题。
Maven的“ shade”插件带有“
transformers”的概念,使您可以将冲突的文件合并到整体JAR中,而不用覆盖另一个。变压器的类型不同…最常见的是:
org.apache.maven.plugins.shade.resource.AppendingTransformer
-只需将一个文本文件追加到另一个文本文件的末尾org.apache.maven.plugins.shade.resource.XmlAppendingTransformer
-将XML附加在一起,同时保持格式合理
在上面的POM片段中,我从讨论板线程中提供的示例中提取了一个转换器列表。它包括两个不随手可用的默认“ shade”插件的转换器:
org.apache.cxf.maven.PluginTransformer
org.apache.cxf.maven.CXFAllTransformer
显然,这两个是CXF特定的加载项,它们不随“ shade”插件一起提供,但必须由CXF JAR单独提供。
我的“解决方案”是不完整的,因为我无法弄清楚如何使这些依赖关系就位。它们似乎是
cxf-buildtoolsMaven依赖软件包的一部分…但是作为上述问题文档,无论我如何尝试将该依赖插入到我的POM中,我都遇到了问题。
但是,实际上,我的解决方案是简单地从“
shade”插件配置中完全删除这两个转换器。没有它们,我的阴影JAR应用程序可以很好地工作。也许这两个特定的变压器在特殊情况下起作用,但是对于香草CXF服务电话,您似乎可以忽略它们。



