gpt4 book ai didi

Maven maven-dependency-plugin copy-dependencies 忽略 outputDirectory

转载 作者:行者123 更新时间:2023-12-04 20:03:05 29 4
gpt4 key购买 nike

我尝试使用 maven-dependency-plugin 的复制依赖目标。我检查了 its official example使用下面的代码段。

我的问题是:依赖项总是被复制到 target\dependency文件夹,即使我指定了 <outputDirectory>节点。

这是我的 pom.xml 的一部分:

<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.10</version>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
</execution>
<configuration>
<outputDirectory>${project.build.directory}/aaa</outputDirectory>
<overWriteReleases>true</overWriteReleases>
<overWriteSnapshots>true</overWriteSnapshots>
<overWriteIfNewer>true</overWriteIfNewer>
</configuration>
</executions>
</plugin>
</plugins>
</build>

问题:我做错了什么?是否可以在项目外声明输出目录?例如:c:\temp

最佳答案

您使用仅在其范围内定义的配置配置了 maven-dependency-plugin 的执行,因此它只会在 mvn package 期间由插件获取> 调用,也就是说,在执行 package 阶段和绑定(bind)到它的插件(执行)时。

如果您从命令行调用插件,如下所示:

mvn dependency:copy-dependencies

它确实只会使用默认值,因为您的配置将被忽略。

其实默认值为outputDirectory选项确实是:

Default: ${project.build.directory}/dependency

在 maven 中,插件配置可以定义为通用配置(在 execution 部分之外,应用于所有执行和命令行调用)或每次执行(在 execution 部分,就像你的情况一样)。


在您的情况下,您可能希望配置在这两种情况下都有效,因此只需将您的插件部分更改为以下内容:

<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.10</version>
<configuration>
<outputDirectory>${project.build.directory}/aaa</outputDirectory>
<overWriteReleases>true</overWriteReleases>
<overWriteSnapshots>true</overWriteSnapshots>
<overWriteIfNewer>true</overWriteIfNewer>
</configuration>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>

注意:我们向上移动了配置,从执行范围到插件(全局)范围。


另请注意,在上面的配置中我们保留了执行,这意味着 Maven 将始终在每次 mvn package 调用时执行此插件目标。如果您不希望出现这种行为并且只想使用命令行执行,那么您可以完全删除 executions 部分。

关于Maven maven-dependency-plugin copy-dependencies 忽略 outputDirectory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36487154/

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