从一个项目的程序集中排除共享依赖项

时间:2017-05-19 09:24:24

标签: maven maven-assembly-plugin

在项目B的maven-assembly-plugin的xml配置中,项目的所有依赖项都会导出到lib/子文件夹。

<dependencySet>
    <useProjectArtifact>false</useProjectArtifact>
    <outputDirectory>lib</outputDirectory>
    <outputFileNameMapping>${artifact.artifactId}-${artifact.baseVersion}${dashClassifier?}.${artifact.extension}
    </outputFileNameMapping>
    <scope>runtime</scope>
</dependencySet>

但是,项目B是项目A的插件,因此许多依赖项是共享的,并且已经存在于项目A的程序集中。

如何从B的程序集中排除所有这些共享依赖项?我看到有一个<excludes>标签,但即使它支持通配符,我也必须手动保持列表最新。我可以以某种方式利用这两个项目的pom文件吗?

1 个答案:

答案 0 :(得分:1)

您可以使用范围解决此问题。在项目B中,必须按照提供的方式设置公共依赖项的范围。这使得您的依赖项(和子依赖项)仅在编译阶段使用。在你的pom中,依赖性看起来像:

notFound = ignore

希望这个帮助