maven-dependency-plugin的dependency:list排除配置不生效问题
解决Maven Dependency List排除依赖不生效的问题
我之前也踩过这个坑!问题核心在于你把排除配置放在了<execution>标签内部,但直接通过命令行mvn dependency:list调用目标时,Maven会使用插件的默认全局配置,并不会读取你自定义execution里的配置规则。
给你三个可行的解决方案:
方案1:命令行直接传递排除参数
不用修改pom.xml,直接在执行命令时追加排除参数即可:
mvn clean dependency:list -Dmaven.test.skip=true -Dverbose -DappendOutput -DoutputFile=D:/dependency.txt -DexcludeArtifactIds=someartifactids
方案2:把排除配置移到插件全局配置
如果希望每次调用dependency:list都自动应用排除规则,把<configuration>从<execution>内部移到<plugin>标签下(全局配置区域):
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <version>3.1.1</version> <!-- 全局配置:所有该插件的调用都会继承此配置 --> <configuration> <excludeArtifactIds>someartifactids</excludeArtifactIds> </configuration> <executions> <execution> <id>list</id> <goals> <goal>list</goal> </goals> </execution> </executions> </plugin>
修改后再执行你原来的命令,排除规则就会生效了。
方案3:调用指定的execution
如果不想改动全局配置,也可以通过execution的ID直接调用你自定义的配置逻辑:
mvn clean dependency:list@list -Dmaven.test.skip=true -Dverbose -DappendOutput -DoutputFile=D:/dependency.txt
这里的@list对应你在<execution>里定义的<id>list</id>,这样Maven就会精准使用这个execution里的排除规则了。
内容的提问来源于stack exchange,提问作者fairjm
相关产品推荐
相关产品推荐

