gpt4 book ai didi

java - Maven 依赖插件不解析插件的手动指定依赖项

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:08:47 27 4
gpt4 key购买 nike

我遇到了maven-dependency-plugin的问题(Maven版本3.2.3maven-dependency-plugin版本2.10).我正在尝试引入插件依赖项。我创建了一个简单的项目:

<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.sze</groupId>
<artifactId>mvn-project</artifactId>
<version>1.0</version>
<packaging>jar</packaging>

<build>
<plugins>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.2</version>
</plugin>
</plugins>
</build>
</project>

我选择了 maven-antrun-plugin 版本 1.2,因为这个插件及其依赖项在 Maven Official Guide to Configuring Plug-ins 中被提及.然后我运行一个命令来解决它的依赖关系:

mvn dependency:resolve-plugins

输出:

[INFO] Plugin Resolved: maven-antrun-plugin-1.2.jar
[INFO] Plugin Dependency Resolved: maven-plugin-api-2.0.1.jar
[INFO] Plugin Dependency Resolved: maven-project-2.0.1.jar
[INFO] Plugin Dependency Resolved: ant-launcher-1.6.5.jar
[INFO] Plugin Dependency Resolved: ant-1.6.5.jar

确实,我有antant-launcher 版本1.6.5。现在我想更改这些依赖项的版本并更改我的 pom.xml:

<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.sze</groupId>
<artifactId>mvn-project</artifactId>
<version>1.0</version>
<packaging>jar</packaging>
<build>
<plugins>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.2</version>
<dependencies>
<dependency>
<groupId>org.apache.ant</groupId>
<artifactId>ant</artifactId>
<version>1.7.1</version>
</dependency>
<dependency>
<groupId>org.apache.ant</groupId>
<artifactId>ant-launcher</artifactId>
<version>1.7.1</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
</project>

但是当我再次运行mvn dependency:resolve-plugins时,属于maven-antrun-plugin的依赖版本仍然是1.6。 5:

[INFO] Plugin Resolved: maven-antrun-plugin-1.2.jar
[INFO] Plugin Dependency Resolved: maven-plugin-api-2.0.1.jar
[INFO] Plugin Dependency Resolved: maven-project-2.0.1.jar
[INFO] Plugin Dependency Resolved: ant-launcher-1.6.5.jar
[INFO] Plugin Dependency Resolved: ant-1.6.5.jar

我还能如何检查这些依赖项的版本是否已更改?

最佳答案

出于某种原因,resolve-plugins 目标将解析自定义插件依赖项。如果您想查看实际使用了哪些插件,则必须在 Debug模式下运行 Maven:

mvn -X antrun:run

这将向您显示添加到类路径的依赖项:

[DEBUG] org.apache.maven.plugins:maven-antrun-plugin:jar:1.2:
[DEBUG] org.apache.ant:ant:jar:1.7.1:runtime
[DEBUG] org.apache.ant:ant-launcher:jar:1.7.1:runtime
[DEBUG] org.apache.maven:maven-plugin-api:jar:2.0.1:compile
[DEBUG] org.apache.maven:maven-project:jar:2.0.1:compile
[DEBUG] org.apache.maven:maven-profile:jar:2.0.1:compile
[DEBUG] org.apache.maven:maven-model:jar:2.0.1:compile
[DEBUG] org.apache.maven:maven-artifact-manager:jar:2.0.1:compile
[DEBUG] org.apache.maven:maven-repository-metadata:jar:2.0.1:compile
[DEBUG] org.codehaus.plexus:plexus-utils:jar:1.0.5:compile
[DEBUG] classworlds:classworlds:jar:1.1-alpha-2:compile
[DEBUG] org.apache.maven:maven-artifact:jar:2.0.1:compile
[DEBUG] org.codehaus.plexus:plexus-container-default:jar:1.0-alpha-9:compile
[DEBUG] junit:junit:jar:3.8.1:compile
[DEBUG] ant:ant-launcher:jar:1.6.5:runtime
[DEBUG] ant:ant:jar:1.6.5:compile

请注意,原始依赖项的组 ID 不是 org.apache.ant 而只是 ant。这将导致 Maven 包含 ant:ant:1.6.5org.apache.ant:ant:1.7.1。但是,自定义依赖项将首先出现在类路径中,因此您将能够使用较新的 ant 版本。

关于java - Maven 依赖插件不解析插件的手动指定依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31938726/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com