Maven程序集 - 从存档中提取时从子文件夹中复制文件

Art*_*cis 6 maven maven-assembly-plugin

我对构建基础结构有一个非常具体的要求,即将另一个JAR依赖项的某些内容复制到我的Web应用程序的特定子文件夹中.我们正在使用maven-assembly-plugin,这样做的一个自然方法就是和它<dependencySet>一起使用<unpackOptions>.

代码示例(在程序集描述符中)我看起来如下:

    <dependencySet>
        <unpack>true</unpack>
        <scope>runtime</scope>
        <useProjectArtifact>false</useProjectArtifact>
        <includes>
            <include>my.group:artifact:jar</include>
        </includes>
        <unpackOptions>
            <includes>
                <include>subfolder/config.xml</include>
            </includes>
        </unpackOptions>
        <outputDirectory>WEB-INF/otherfolder</outputDirectory>
    </dependencySet>
Run Code Online (Sandbox Code Playgroud)

问题是我无法弄清楚如何指定我只想将一个文件复制artifact.jar/subfolder/config.xml到目标WEB-INF/otherfolder.实际结果是WEB-INF/otherfolder/subfolder/config.xml.如您所见,/subfolder将附加到最终路径.有没有办法更改<include>表达式,以便/subfolder不会附加?

提前致谢!

Art*_*cis 2

浏览源代码发现,通过 maven-assemble 插件这是不可能的。它获取程序集描述符中指定的所有包含内容,然后将此信息传递给在多个阶段使用的 Plexus 存档器。包含模式也会传递到 Plexus 存档器,然后它显然会执行“解包”以保存目录结构。