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

时间:2016-06-22 11:51:03

标签: maven maven-assembly-plugin maven-shade-plugin

我想合并两个jar项目并覆盖一些资源.i有项目A有一些其他依赖项和项目类型是jar 。另一个项目B依赖项目a。我想合并项目A,B,但我不需要从项目A的所有依赖项的胖jar。当我合并项目a和b中的资源时,我希望项目b中的项目b中具有相同包的首选资源,

我的项目结构是这样的

 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)

我该怎么办?我谷歌它,并找到一些结果,说maven组装和maven阴影可以做到这一点。但我不能这样做。

1 个答案:

答案 0 :(得分:1)

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

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