簡體   English   中英

Maven依賴插件無法解析插件的手動指定依賴項

[英]Maven dependency plugin does not resolve manually specified dependencies for a plugin

我遇到了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官方指南配置插件中提到。 然后我運行一個命令來解決它的依賴關系:

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目標不會解析自定義插件依賴項。 如果要查看實際使用的插件,則必須在調試模式下運行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版本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM