使用没有依赖项和覆盖资源的maven程序集合并jar

merge jar using maven assembly without dependencies and overlay reources

我想合并两个 jar 项目并覆盖其中的一些资源。我有一个项目 A 有一些其他依赖项并且项目类型是 jar .另一个项目 B 依赖于项目 a 。我想合并项目 A、B,但我不需要来自项目 A.when 的所有依赖项的 fat jar 我合并项目 a 和 b 中的资源我希望项目 b 中的资源在项目 a 中具有相同的包,

我的项目结构是这样的

 project A (depend to x.jar and y.jar)
     resources
       meta-inf
           resources
               edit.jsp
               index.jsp


project B 
  resources
       meta-inf
           resources
               index.jsp

我希望合并后的jar结构是这样的

 project.jar 
  resources
       meta-inf
           resources
               edit.jsp
               index.jsp(from projectB)

我该怎么做?我 google 它并找到一些结果说 maven assembly 和 maven shade 可以做到。但我做不到。

搜索后我发现 Maven 程序集插件有 dependencySets 配置,可以包含对它的依赖。当在 assembly.xml 中添加 include 解决问题

 <dependencySets>
    <dependencySet>
        <outputDirectory>/</outputDirectory>
        <unpack>true</unpack>
        <includes>
            <include>project:A:jar</include>
        </includes>
    </dependencySet>
</dependencySets>