首页 > 解决方案 > 如何使用 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/被保留。

标签: mavenbuildmaven-dependency-plugin

解决方案


文件名可以由文件映射器更改。

这个技巧也适用于整个地点:

<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>

推荐阅读