如何使用maven依赖插件将类型为pom的依赖项复制到一个位置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用maven依赖插件将类型为pom的依赖项复制到一个位置相关的知识,希望对你有一定的参考价值。

需要解析以下依赖项并将子依赖项复制到特定位置。

    <dependency>
        <groupId>org.wildfly</groupId>
        <artifactId>wildfly-ejb-client-bom</artifactId>
        <version>${version.org.wildfly.wildfly-ejb-client-bom}</version>
        <type>pom</type>
        <scope>import</scope>   
    </dependency>
    <dependency>
        <groupId>org.wildfly</groupId>
        <artifactId>wildfly-jms-client-bom</artifactId>
        <version>${version.org.wildfly.wildfly-jms-client-bom}</version>
        <type>pom</type>
        <scope>import</scope>
    </dependency>

但是当我使用maven依赖插件进行复制时,只复制pom文件,而不是那些pom中定义的依赖项。

我的插件如下,

       <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <executions>
                <execution>
                    <id>copy-dependencies</id>
                    <phase>prepare-package</phase>
                    <goals>                         
                        <goal>copy</goal>
                    </goals>                        
                    <configuration>
                        <artifactItems>
                            <artifactItem>
                                <groupId>org.wildfly</groupId>
                                <artifactId>wildfly-ejb-client-bom</artifactId>
                                <version>${version.org.wildfly.wildfly-ejb-client-bom}</version>
                                <type>pom</type>
                                <outputDirectory>${project.build.directory}/Lib</outputDirectory>   
                            </artifactItem>
                            <artifactItem>
                                <groupId>org.wildfly</groupId>
                                <artifactId>wildfly-jms-client-bom</artifactId>
                                <version>${version.org.wildfly.wildfly-jms-client-bom}</version>
                                <type>pom</type>
                                <outputDirectory>${project.build.directory}/Lib</outputDirectory>
                            </artifactItem>                             
                        </artifactItems>
                    </configuration>
                </execution>
            </executions>
        </plugin>

任何线索?

答案

使用<scope>import</scope>管理来自其他项目的依赖项。有关详细解决方案,请参阅Maven文档中的this

以上是关于如何使用maven依赖插件将类型为pom的依赖项复制到一个位置的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Maven 中找出隐藏的依赖项和插件版本?

如何在不使用任何插件的情况下将非 maven 依赖项安装到您的 maven 项目中? [复制]

maven如何继承父工程的依赖关系

如何在插件中访问 Maven 的依赖层次结构

创建发布版本后如何管理 Maven 依赖工件

如何配置maven pom文件来解决jar包冲突