如何将文件从子文件夹解压缩到目标文件夹?
示例:
我的包中包含ThisFolder
和ThatFolder
,我只想将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>
它只是不起作用。有解决办法吗?
答案 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解决方案。