maven巧妙排除父pom的依赖

Posted 程序员超时空

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了maven巧妙排除父pom的依赖相关的知识,希望对你有一定的参考价值。

项目中引入架构师搭好的父pom工程

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
	
	<modelVersion>4.0.0</modelVersion>
	
	<parent>
		<groupId>com.xxx.xxx</groupId>
		<artifactId>parent</artifactId>
		<version>0.0.1-RELEASE</version>
	</parent>
	
	<artifactId>xxx-xxx-xxx</artifactId>
	<version>0.0.1-RELEASE</version>
	<packaging>pom</packaging>

发现一个问题 子模块如何把父pom依赖的jar包排除掉呢
思前想后
直接在父依赖pom直接排除呢

<dependency>
    <groupId>com.zyt</groupId>
    <artifactId>parent</artifactId>
    <version>1.0-SNAPSHOT</version>
    <exclusions>
        <exclusion>
            <groupId>..</groupId>
            <artifactId>jedis</artifactId>
        </exclusion>
     </exclusions>
</dependency>

尝试未果 不能这样排除
于是想到了这样一个方法, 直接依赖覆盖搞定
子类重写,定义scope为test,打包则不会出现,亲测可用

    <dependencies>
        <dependency>
            <groupId>xxx.yyy.zzz</groupId>
            <artifactId>abcd</artifactId>
            <scope>test</scope> <!-- 特殊处理,不引入父类lib -->
        </dependency>
    </dependencies>

以上是关于maven巧妙排除父pom的依赖的主要内容,如果未能解决你的问题,请参考以下文章

maven 依赖排除 是排除低版本的还是高版本

为啥有排除 pom.xml / maven 中依赖项的依赖项的选项?

如何在插件中访问 Maven 的依赖层次结构

如何通过父pom中的dependencyManagement强制maven依赖版本?

maven pom 怎么从jar包里面排除一个类

maven项目的继承