我似乎无法弄清楚这一点。
我的pom.xml中有以下内容
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.1.0</version>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>compile</phase>
<goals>
<goal>compile</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/lib</outputDirectory>
<overWriteReleases>true</overWriteReleases>
<overWriteSnapshots>true</overWriteSnapshots>
<overWriteIfNewer>true</overWriteIfNewer>
</configuration>
</execution>
</executions>
</plugin>
我计划将所有依赖项复制到target / lib目录。 为什么不这样做呢? 我的项目正在不断发展,所以我不想指定要复制的每个工件。我想让它们全部拿走,并在“包”(或编译)阶段将它放到适当的位置。
我只在lib文件夹中获取了mainProject.jar文件。 请帮忙。我错过了什么?
答案 0 :(得分:0)
复制依赖项的正确目标是copy-dependencies
,而不是compile
。此外,如果要使用mvn dependency:copy
从命令行调用插件,则配置部分不应位于执行内部。这是一个适用于所有情况的配置:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.1.0</version>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
</execution>
</executions>
<configuration>
<outputDirectory>${project.build.directory}/lib</outputDirectory>
<overWriteReleases>true</overWriteReleases>
<overWriteSnapshots>true</overWriteSnapshots>
<overWriteIfNewer>true</overWriteIfNewer>
</configuration>
</plugin>
正如您所看到的,我正在&#39;包中运行插件。阶段,但它也适用于编译&#39;阶段,除非您想要包含刚刚由您自己的项目构建的工件。