gpt4 book ai didi

java - 依赖:copy mojo used in command line and configured same pulgin in pom file as build plugin有什么区别

转载 作者:行者123 更新时间:2023-11-30 10:59:47 25 4
gpt4 key购买 nike

我想找到 io.airlift:node:0.112 的所有依赖项,下载最少的文件:

  1. 使用命令 %M2_HOME%/bin/mvn dependency:copy -Dmdep.outputScope=true -DincludeScope=compile -DincludeParents=true -DoutputFile="F:\temp\mytemp5"-DexcludeTransitive=true -f "F:\maven-plugins\node-0.112.pom", 正在下载org.apache.maven.scm:maven-scm-provider-gitexe:1.8.1 .

  2. 如果我创建一个虚拟 pom 并依赖于 node-0.112,然后在虚拟 pom 上运行相同的命令,它不会下载 org.apache.maven.scm:maven-scm-供应商-gitexe:1.8.1。下面是我的 pom 文件:

    <project>
    <modelVersion>4.0.0</modelVersion>
    <groupId>dummy</groupId>
    <artifactId>dummy</artifactId>
    <version>1.0</version>
    <packaging>pom</packaging>
    <dependencies>
    <dependency>
    <groupId>io.airlift</groupId>
    <artifactId>node</artifactId>
    <version>0.112</version>
    <type>pom</type>
    </dependency>
    </dependencies>
    <build>
    <plugins>
    <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <version>2.8</version>
    <executions>
    <execution>
    <id>copy-dependencies</id>
    <phase>package</phase>
    <goals>
    <goal>copy-dependencies</goal>
    </goals>
    <configuration>
    <addParentPoms>true</addParentPoms>
    <copyPom>true</copyPom>
    <outputDirectory>.</outputDirectory>
    <excludeTransitive>false</excludeTransitive>
    <useRepositoryLayout>true</useRepositoryLayout>
    <includeScope>compile</includeScope>
    </configuration>
    </execution>
    </executions>
    </plugin>
    </plugins>
    </build>
    </project>

此外 org.apache.maven.scm:maven-scm-provider-gitexe:1.8.1 甚至没有作为两种方法的依赖项返回。

为什么 maven 试图下载这个额外的插件?无需下载额外插件即可找到依赖项的最佳方法是什么?

最佳答案

io.airlift:node:0.112 pom 中有以下几行:

<scm>
<connection>scm:git:git://github.com/airlift/airlift.git</connection>
<developerConnection>scm:git:git@github.com:airlift/airlift.git</developerConnection>
<url>https://github.com/airlift/airlift/tree/master</url>
<tag>0.112</tag>
</scm>

SCM代表Software Configuration Management ,这基本上是 pom 的一部分,它定义了作者如何维护他们的来源。查看链接以获取更多信息

So, the executable is this; there's not much at that link but you can take a look.这会导致下载 org.apache.maven.scm:maven-scm-provider-gitexe:1.8.1 以促进项目与其 git 存储库的连接。它不依赖于项目本身,但它依赖于项目的维护方式 - 通过使用 git 进行版本控制。

因此,如果您执行mvn dependency:copy,它会下载gitexe,但是如果您创建一个新项目,不会 定义 git scm(事实上,根本没有定义任何 SCM),然后它不会下载可执行文件。

关于java - 依赖:copy mojo used in command line and configured same pulgin in pom file as build plugin有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31793140/

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