当前位置: 首页 > 知识库问答 >
问题:

是否可以排除来自java starter父pom的maven依赖jar?

雍志文
2023-03-14

我读过:

>

  • 排除从父pom继承的子pom中的依赖项

    多模块项目:从父pom中排除依赖项

    排除从父POM继承的工件?

    排除父POM中的指令

    如何在Maven中从父项目中排除依赖项?

    我的结论是,没有办法排除从父pom继承的特定依赖项。我使用的是maven,父pom不可编辑。

    所以,我想在它打包到目标jar之前,排除jar本身的依赖项。

    My parent pom is `sdk-java-starter-parent` that comes from an internal library.
    
    <parent>
            <groupId>abc.def.xyz</groupId>
            <artifactId>sdk-java-starter-parent</artifactId>
            <version>6.1.0.4</version>
        </parent>
    

    该pom声明了log4-1.2.7依赖项,我想排除它并且根本不导入我的项目。

    <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>
    

    如果我直接从spring的组中导入父pom,我可以使用Spring启动maven插件来排除它。但是因为我从内部库导入父pom,所以没有使用或不可能使用该插件。

    我想过使用maven-shader插件和其他重新打包插件,以便在包装之前“遮蔽”罐子:

    <excludes>
    <exclude>log4j-1.2.17.jar</exclude> (tried also `**/log4j-1.2.17.jar`)
    </excludes>
    

    但它并没有起到同样的作用。我已经尝试了<code>

    老实说,我一无所知,如果可能的话,我很乐意听到一些想法,你会建议我怎么做。

    如果不可能,我还有什么选择?我如何避免收到那个log4j罐子?

    最后一个应用程序是一个由JAR组成的docker容器

    正在使用的插件包括:

      < li>maven-jar-plugin < li>maven-surefire-plugin < li>docker-maven-plugin < li>swagger-maven-plugin

    我不确定其中哪一个负责构建应用程序和罐子包装。

    谢谢

  • 共有1个答案

    拓拔稳
    2023-03-14

    我认为您需要将排除写为

     类似资料:
    • 我有一个带有子pom B、C和D的父pom A,在B、C和D中,我有相同类型的依赖项。 ie父Pom 儿童Pom 到目前为止,我已经尝试过编辑插件surefire,当试图排除子pom的测试范围时,它不起作用。 我的问题是,是否有一种方法可以将概要文件添加到父pom中,以排除所有子pom的类型测试jar的所有依赖项。谢谢

    • 我在父pom中有一个版本为2.3的Jackson,在我的子pom中我需要版本2.9,是否有任何方法排除父pom依赖?

    • 我们有一个模块化项目,包含大约10个工件: 此外,一些工件之间存在依赖关系: 我们当前的设置如下所示: parent是包含父POM的工件 这个父POM定义了所有必要的依赖项(比如Spring、JPA等等)进来 我们所有的工件也都在中定义 我们的工件将父工件称为明显的父工件 只有父POM定义版本。其他所有的POM都没有 我们使用三个数字的版本控制方案: 例如: 问题是: 一旦我们更改了工件的版本(例

    • Maven插件及其在父pom中定义的依赖项,我不希望我的子pom包含该插件依赖项。 例如,如果有1个父级和100个子级,99个使用该插件并希望在一个子级中排除该插件。 我们如何才能实现这一目标?

    • 我有一个maven工件(),它依赖于某个工件()。 有一个父pom,其中包含某些其他依赖项。 是否可以使用这些依赖项,而无需在其自身pom的依赖项部分中明确添加它们?

    • 主要内容:排除依赖,可选依赖,排除依赖 VS 可选依赖 我们知道 Maven 依赖具有传递性,例如 A 依赖于 B,B 依赖于 C,在不考虑依赖范围等因素的情况下,Maven 会根据依赖传递机制,将间接依赖 C 引入到 A 中。但如果 A 出于某种原因,希望将间接依赖 C 排除,那该怎么办呢?Maven 为用户提供了两种解决方式:排除依赖(Dependency Exclusions)和可选依赖(Optional Dependencies)。 排除依赖