请教个 maven-dependency-plugin 的 excludeScope 问题

本文详细介绍了如何使用Maven的dependency-plugin插件来精确地管理不同范围的依赖,包括compile和system范围的依赖复制。通过配置两个execution,分别处理runtime和system范围的依赖,实现了对特定依赖的有效管理和排除。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转载自:《请教个 maven-dependency-plugin 的 excludeScope 问题》

我需求是 copy(copy-dependencies) compile 和 system 范围的依赖。

我想当然的以为这样配置能行

<includeScope>compile</includeScope>
<excludeScope>provided</excludeScope>

但事实上 include 不能和 exclude 同时工作,所以只能配置这一个<excludeScope>provided</excludeScope>然后 excludeArtifactIds 排除掉 junit 等

话说有没有其它简洁的方法

PS:includeScope 的配置说明

runtime scope gives runtime and compile dependencies,
compile scope gives compile, provided, and system dependencies,
test (default) scope gives all dependencies,
provided scope just gives provided dependencies,
system scope just gives system dependencies.

解决方案:

配置两个就行了

<executions>
    <execution>
        <id>copy-dependencies-runtime</id>
        <phase>prepare-package</phase>
        <goals>
            <goal>copy-dependencies</goal>
        </goals>
        <configuration>
            <!--http://maven.apache.org/plugins/maven-dependency-plugin/copy-dependencies-mojo.html#includeScope-->
            <includeScope>runtime</includeScope>
            <!--依赖传递-->
            <excludeTransitive>false</excludeTransitive>
        </configuration>
    </execution>
    <execution>
        <id>copy-dependencies-system</id>
        <phase>prepare-package</phase>
        <goals>
            <goal>copy-dependencies</goal>
        </goals>
        <configuration>
            <includeScope>system</includeScope>
            <!--过滤依赖传递-->
            <excludeTransitive>true</excludeTransitive>
        </configuration>
    </execution>
    <execution>
        <id>install</id>
        <phase>install</phase>
        <goals>
            <goal>sources</goal>
        </goals>
    </execution>
</executions>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值