如何将子文件夹中的文件解压到目标文件夹?
示例:
我的软件包包含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>它就是不起作用。有什么解决方案可以做到这一点吗?
发布于 2018-02-05 23:59:25
Maven依赖项插件是为依赖项,即Java存档而创建的。Java存档中的目录结构对于类文件的包结构是必不可少的。因此,很容易理解为什么插件会考虑归档文件中的目录,而不能将其取消。
目前我能想到的最干净利落的方法就是事后复制文件。参见Best practices for copying files with Maven。
(另一种方法是使用带有zip.exe的Exec Maven插件,但这会引入外部依赖。)
对于上面链接的问题,我更喜欢使用fnt's answer中描述的Wagon Maven Plugin's copy goal的解决方案。
https://stackoverflow.com/questions/48623388
复制相似问题