2011-05-16 109 views
10

我对Maven程序集目标有点麻烦。我有一个项目,它有许多依赖项,每个依赖项都可能有它们自己的传递依赖项。如果我运行mvn依赖关系:树,比我可以看到包括传递的所有依赖关系都满意。使用include设置Maven程序集依赖关系不拾取传递依赖

当我运行程序集目标时,情况并非如此。当我添加要包含的依赖项时,我想要的是,它的所有传递依赖项也包含在内。在以下示例中,我有三个依赖关系,我希望将其包含在内。所以当组装完成后,我预计也会有这些依赖关系以及这些依赖关系的传递依赖关系。

<assembly> 
<baseDirectory>${artifactId}/${artifactId}-${version}</baseDirectory> 
<formats> 
    <format>zip</format> 
</formats> 

<fileSets> 
</fileSets> 

<dependencySets> 
    <dependencySet> 
     <unpack>false</unpack> 
     <scope>runtime</scope> 
     <outputDirectory>/lib 
     </outputDirectory> 
     <includes> 
      <include>com.acme.core:library-1</include> 
      <include>com.acme.core:library-2</include> 
      <include>com.acme.core:library-2</include> 
     </includes> 
    </dependencySet> 
</dependencySets> 

但如果你打开zip文件,你会发现只有目前这三个依赖,这意味着应用程序运行时不适合的目的由于缺少库。我发现这完全不直观,因为它违背了人们对POM期望的行为。

有没有人遇到过这个问题,有没有解决方法?

+0

你使用哪个版本的程序集插件? – dunni 2011-05-16 19:46:37

回答