首页 > 解决方案 > maven-dependeny-plugin 3.2.0 下载 struts 1.3.8

问题描述

我们正在使用 maven-dependency-plugin 从我们的 nexus 获取 ZIP 以供以后使用。我们这样做是因为它是使用集成的 maven-user 处理从受保护的关系中下载的最简单方法。

使用 maven-dependency-plugin 时,它将 Struts 1.3.8 作为 Dependency 下载。

在旧版本的插件中,这是正常的,因为它是插件的传递依赖: https ://maven.apache.org/plugins-archives/maven-dependency-plugin-3.1.2/dependencies.html

在当前版本中,它已被删除:https ://maven.apache.org/plugins-archives/maven-dependency-plugin-3.2.0/dependencies.html 这是通过 org.apache.maven.doxia 的更新完成的:doxia-site-renderer:jar:1.9 到 org.apache.maven.doxia:doxia-site-renderer:jar:1.9.2 (1.9.2 不包括 struts 依赖)

仍然使用插件下载struts,我不知道为什么。

我尝试使用最新的 Maven(3.8.3)并将其缩小为一个简单的命令:

mvn org.apache.maven.plugins:maven-dependency-plugin:3.2.0:get -DgroupId=commons-lang -DartifactId=commons-lang -Dversion=2.6 -Dmaven.repo.local=repo

使用“repo”作为存储库文件夹下载旧的 commons-lang 依赖项。如果您检查下载日志或文件夹,它将包含“org/apache/struts/....”。

我还用一个简单的 pom.xml 进行了测试:

<?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 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.test</groupId>
    <artifactId>test-dep-plugin</artifactId>
    <version>1.0.0-SNAPSHOT</version>
    <packaging>pom</packaging>

    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-dependency-plugin</artifactId>
                    <version>3.2.0</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-site-plugin</artifactId>
                    <version>3.9.1</version>
                </plugin>
            </plugins>
        </pluginManagement>

        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <executions>
                    <execution>
                        <id>get</id>
                        <phase>validate</phase>
                        <goals>
                            <goal>get</goal>
                        </goals>
                        <configuration>
                            <groupId>org.apache.commons</groupId>
                            <artifactId>commons-lang3</artifactId>
                            <version>3.12.0</version>

                            <transitive>false</transitive>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

</project>

您可以尝试“ mvn clean verify”来运行它。这会导致同样的问题。我更新了“站点”插件,因为它在旧版本中也有一个 struts 依赖项。

我还尝试使用以下方法检查插件依赖项:mvn dependency:resolve-plugins

这并没有给我任何 struts 依赖项。maven 的某些部分似乎仍然需要它们。如果我删除 maven-dependency-plugin,它们就消失了。

如何摆脱所有(过时和不需要的)struts 依赖项?

标签: javamavenmaven-pluginmaven-dependency-plugin

解决方案


推荐阅读