Mave-assembly-plugin:自定义描述符以排除文件夹

Mave-assembly-plugin: customize descriptor to exclude a folder

我的目录结构如下:

MyProject/
   - temp/
     - cat_A/
         - tmp/
         - file_A
     - cat_B/
         - tmp/
         - file_B

我正在使用 maven-assembly-plugin。我想创建一个 tar.gz 文件,其内容如下所示:

output/
  - cat_A/
    - file_A
  - cat_B/
    - file_B

我尝试制作如下自定义描述符:

<assembly …>
   <id>my-result</id>
  <formats>
    <format>tar.gz</format>
  </formats>
  <fileSets>
    <fileSet>
      <directory>${project.baseDir}/temp</directory>
      <outputDirectory>output</outputDirectory>

      <!-- tried to exclude tmp/ folder-->

        <excludes>
            <exclude>${project.baseDir}/temp/cat_A/tmp</exclude>
            <exclude>${project.baseDir}/temp/cat_B/tmp</exclude>
        </excludes>

    </fileSet>
  </fileSets>
</assembly>

但最终输出仍然包含 tmp/ 文件夹。

如何排除tmp/文件夹,达到我想要的效果?

因为这是一个目录,所以您必须将排除项更改为:

    <excludes>
        <exclude>/cat_A/tmp/**</exclude>
        <exclude>/cat_B/tmp/**</exclude>
    </excludes>

更新:没有${project.baseDir}/temp因为它是相对于你的目录

This and that 提供更多信息。