在项目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文件吗?
答案 0 :(得分:1)
您可以使用范围解决此问题。在项目B中,必须按照提供的方式设置公共依赖项的范围。这使得您的依赖项(和子依赖项)仅在编译阶段使用。在你的pom中,依赖性看起来像:
notFound = ignore
希望这个帮助