使用maven依赖(:copy)插件无法正常工作

时间:2018-04-18 22:52:34

标签: maven dependency-management

我似乎无法弄清楚这一点。

我的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文件。 请帮忙。我错过了什么?

1 个答案:

答案 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;阶段,除非您想要包含刚刚由您自己的项目构建的工件。