maven-dependency-plugin 3.2.0 下载 struts 1.3.8
maven-dependeny-plugin 3.2.0 downloading struts 1.3.8
我们正在使用 maven-dependency-plugin 从我们的关系中获取一个 ZIP 以备后用。我们这样做是因为它是使用集成的 maven 用户处理从我们受保护的联系下载的最简单方法。
使用 maven-dependency-plugin 时,它会下载 Struts 1.3.8 作为依赖项。
在旧版本的插件中这是正常的,因为它是插件的传递依赖:
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-依赖项?
maven-dependency-plugin 3.3.0 的更新似乎解决了这个问题。
执行时
mvn org.apache.maven.plugins:maven-dependency-plugin:3.3.0:get -DgroupId=commons-lang -DartifactId=commons-lang -Dversion=2.6 -Dmaven.repo.local=repo
我在 repo 文件夹中没有 struts 依赖项。
我们正在使用 maven-dependency-plugin 从我们的关系中获取一个 ZIP 以备后用。我们这样做是因为它是使用集成的 maven 用户处理从我们受保护的联系下载的最简单方法。
使用 maven-dependency-plugin 时,它会下载 Struts 1.3.8 作为依赖项。
在旧版本的插件中这是正常的,因为它是插件的传递依赖: 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-依赖项?
maven-dependency-plugin 3.3.0 的更新似乎解决了这个问题。
执行时
mvn org.apache.maven.plugins:maven-dependency-plugin:3.3.0:get -DgroupId=commons-lang -DartifactId=commons-lang -Dversion=2.6 -Dmaven.repo.local=repo
我在 repo 文件夹中没有 struts 依赖项。