You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Maven Assembly插件将文件平级打包至Zip根目录?

解决Maven Assembly插件打包目录层级问题

没问题,我来帮你调整配置,让文件直接出现在Zip的根目录里!

你当前的配置问题在于,directory指向的是src/main/resources/,而目标文件实际在myfiles子目录下,加上includes只匹配根目录的.file文件,导致插件打包时保留了完整的目录结构。要实现需求,只需要调整fileSet的几个参数:

修改后的完整Assembly配置

<assembly>
    <formats>
        <format>zip</format>
    </formats>
    <fileSets>
        <fileSet>
            <!-- 直接指向存放目标文件的子目录 -->
            <directory>src/main/resources/myfiles</directory>
            <!-- 包含该目录下所有文件(可根据需要调整匹配规则) -->
            <includes>
                <include>**/*</include>
            </includes>
            <!-- 设置为空字符串,将文件输出到Zip根目录 -->
            <outputDirectory></outputDirectory>
        </fileSet>
    </fileSets>
    <!-- 已经正确设置为false,避免把myfiles目录本身打包进去 -->
    <includeBaseDirectory>false</includeBaseDirectory>
</assembly>

关键调整说明

  • directory:从src/main/resources/改为src/main/resources/myfiles,直接定位到你要打包的文件所在的目录,这样插件就不会携带上层的目录结构。
  • outputDirectory:设置为空字符串(或者.),明确告诉插件将文件放到Zip的根目录,而不是嵌套原路径。
  • includes:改为**/*来包含myfiles目录下的所有文件(包括子目录里的文件,如果有的话),如果只需要特定后缀的文件,可以改成*.file之类的规则。

这样调整后,重新执行打包命令,生成的myzip.zip里就会直接包含myfiles目录下的所有文件,不会有多余的层级嵌套啦!

内容的提问来源于stack exchange,提问作者Vishal Kawade

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 21:12:28