Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Maven 从一个项目的程序集中排除共享依赖项_Maven_Maven Assembly Plugin - Fatal编程技术网

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

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

在项目B的maven assembly插件的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的程序集中排除所有这些共享依赖项?我看到有一个标记,但即使它支持通配符,我也必须手动更新列表。我是否可以以某种方式利用这两个项目的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中将其覆盖一次到运行时?除了我在前面的注释中指的是编译,而不是运行时之外,它确实有效。谢谢