maven - 如何使用 Maven 依赖插件更改位置?
问题描述
我需要将一些资源从工件复制到特定位置。我需要更改位置而不使其变平。
例如:
my-res-artifact
\
someroot/subdir1/
+ myres1.dat
+ myres2.dat
\
subdir12
+ myres3.dat
我想将其复制到subdir1
目录中,但删除someroot
根目录。这不适用于以下情况:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>unpack-additional-resources</id>
<phase>prepare-package</phase>
<goals>
<goal>unpack-dependencies</goal>
</goals>
<configuration>
<includeGroupIds>com.example</includeGroupIds>
<includeArtifactIds>my-res-artifact</includeArtifactIds>
<includes>someroot/subdir1/**</includes>
<outputDirectory>${project.build.directory}</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
目录结构someroot/subdir1/
被保留。
解决方案
文件名可以由文件映射器更改。
这个技巧也适用于整个地点:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>unpack-additional-resources</id>
<phase>prepare-package</phase>
<goals>
<goal>unpack-dependencies</goal>
</goals>
<configuration>
<includeGroupIds>com.example</includeGroupIds>
<includeArtifactIds>my-res-artifact</includeArtifactIds>
<includes>someroot/subdir1/**</includes>
<outputDirectory>${project.build.directory}</outputDirectory>
<fileMappers>
<fileMapper implementation="org.codehaus.plexus.components.io.filemappers.RegExpFileMapper">
<pattern>someroot/subdir1</pattern>
<replacement>subdir1</replacement>
</fileMapper>
</fileMappers>
</configuration>
</execution>
</executions>
</plugin>
推荐阅读
- kubernetes - 如何在 kube1.20.2 中更改控制面板、主节点的名称
- java - Override onBackPressed() method. Back button has to be clicked twice to quit the Activity
- vuejs2 - Vue.js - 为什么我不能插入到 html 表中?
- c# - Winform:允许用户动态更改应用程序的颜色
- javascript - ExpressJS 在记录 req.cookies 时返回空对象
- python - 如何仅提取音频文件中的语音/语音?
- javascript - 如何使用 discord.js 更改个人资料图片和服务器名称
- matlab - 使用 J. Wu 的快速线性插值法在 Matlab 中进行图像插值
- python-3.x - 如何在python中处理未知大小的数值的多值行?
- c++ - 错误:lib.a:重定位 R_X86_64_PC32 对符号“...”在制作共享对象时不能使用;使用 -fPIC 重新编译