Maven-Assembly-Plugin包含特定依赖项及其传递依赖项

时间:2017-05-04 21:27:01

标签: maven-assembly-plugin transitive-dependency

我想使用maven-assembly-plugin只包含一个特定的jar及其依赖项,如下所示。我的期望是将apache-cxf-2.7.11及其所有依赖项复制到" lib / apache-cxf-2.7.11"

<dependencySet>
            <outputDirectory>lib/apache-cxf-2.7.11</outputDirectory>
            <useTransitiveDependencies>true</useTransitiveDependencies>
            <includes>
                <include>org.apache.cxf:apache-cxf</include>
            </includes>
</dependencySet>

2 个答案:

答案 0 :(得分:1)

现在有用了。我使用了true,它删除了所有依赖项

答案 1 :(得分:0)

几年来,我一直在针对这个问题进行研究,我在这里发布了有关上述内容为何在一般情况下不起作用的解释,希望对某些人有帮助...

如果托管程序集执行的模块和您要为其提取依赖项的工件具有共同的依赖项,则会出现此问题……例如:

module A:
   dep. lib-a1
   dep. lib-common

module B:
    dep. lib-common
    dep. module A
    main/assembly/moduleA-with-dependencies: <??> 

恐怕没有在模块B中执行时允许您包含所有模块A依赖项的程序集插件配置:这是因为maven将lib-common视为模块B的直接依赖项,而从不使其进入模块依赖项模块。

如果有人知道在上述情况下如何选择lib-a1和lib-common(当然没有任何编码...),我真的很想听听它。但是事实是,模块B中的mvndependency:tree没有显示lib-common作为模块A的依赖,这给我带来了希望...

弗朗克