如何从maven-dependency-plugin中的子文件夹解压缩目标unpack-dependencies中的文件?

时间:2018-02-05 13:11:13

标签: maven maven-dependency-plugin

如何将文件从子文件夹解压缩到目标文件夹?

示例:

我的包中包含ThisFolderThatFolder,我只想将ThisFolder中的文件夹和文件解压缩到目标目录中,而不是文件夹Thisfolder本身。

  <plugin>
    <artifactId>maven-dependency-plugin</artifactId>
    <executions>
      <execution>
        <id>unpack_this</id>
        <goals>
          <goal>unpack-dependencies</goal>
        </goals>
        <phase>initialize</phase>
        <configuration>
          <includeArtifactIds>ZipFile</includeArtifactIds>
          <includes>ThisFolder/**</includes>
          <stripVersion>true</stripVersion>
          <outputDirectory>${project.build.directory}/dependency</outputDirectory>
        </configuration>
      </execution>
    </executions>
  </plugin>

在这个例子中,我几乎就在那里,但包括ThisFolder。如果我尝试使用:

<excludes>ThisFolder</excludes>

它只是不起作用。有解决办法吗?

1 个答案:

答案 0 :(得分:1)

Maven Dependency Plugin用于依赖,即Java归档。 Java归档文件中的目录结构对于类文件的包结构至关重要。因此,很容易理解为什么存档中的目录被插件考虑并且无法被抑制。

目前我能想到的最简洁的方法是随后复制文件。请参阅Best practices for copying files with Maven

(另一个是使用带有zip.exe的Exec Maven插件,但会引入外部依赖。)

对于上面链接的问题,我更喜欢使用Wagon Maven Plugin's copy goal中描述的fnt's answer解决方案。