Maven 从一个项目的程序集中排除共享依赖项
在项目B的maven assembly插件的xml配置中,项目的所有依赖项都导出到lib/子文件夹Maven 从一个项目的程序集中排除共享依赖项,maven,maven-assembly-plugin,Maven,Maven Assembly Plugin,在项目B的maven assembly插件的xml配置中,项目的所有依赖项都导出到lib/子文件夹 <dependencySet> <useProjectArtifact>false</useProjectArtifact> <outputDirectory>lib</outputDirectory> <outputFileNameMapping>${artifact.artifactId}-${ar
<dependencySet>
<useProjectArtifact>false</useProjectArtifact>
<outputDirectory>lib</outputDirectory>
<outputFileNameMapping>${artifact.artifactId}-${artifact.baseVersion}${dashClassifier?}.${artifact.extension}
</outputFileNameMapping>
<scope>runtime</scope>
</dependencySet>
然而,项目B是项目a的插件,因此许多依赖项是共享的,并且已经存在于项目a的程序集中
请问如何从B的程序集中排除所有这些共享依赖项?我看到有一个标记,但即使它支持通配符,我也必须手动更新列表。我是否可以以某种方式利用这两个项目的pom文件?您可以使用scope解决此问题。在项目B中,必须按照提供的设置公共依赖项的范围。这使得依赖项和子依赖项只能在编译阶段使用。在pom中,依赖项应该如下所示:
<dependency>
<groupId>net.sourceforge.jtds</groupId>
<artifactId>jtds</artifactId>
<version>1.2.2</version>
<scope>provided</scope>
</dependency>
希望此帮助我有一个在a和B之间共享依赖关系管理的父pom。我是否可以设置为公共LIB提供的默认范围,以便我只需在a的子pom中将其覆盖一次到运行时?除了我在前面的注释中指的是编译,而不是运行时之外,它确实有效。谢谢