如何使用 Maven 程序集插件从输出文件中删除一些文件夹?

How can I remove some folders from the output file using the maven assembly plugin?

我正在尝试从文件结构中创建一个 zip 文件。为此,我正在使用 Maven 程序集插件:

  <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-assembly-plugin</artifactId>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>single</goal>
                        </goals>
                        <configuration>
                            <finalName>${reporting.module.zip.name}</finalName>
                            <appendAssemblyId>false</appendAssemblyId>
                            <descriptors>
                                <descriptor>src/main/assembly/zip.xml</descriptor>
                            </descriptors>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
  </build>

和一个程序集描述符文件:

    <id>zip</id>
    <includeBaseDirectory>false</includeBaseDirectory>

    <formats>
        <format>zip</format>
    </formats>

    <fileSets>
        <fileSet>
            <directory>${project.basedir}/src/main/resources</directory>        
        </fileSet>
    </fileSets>

很好...这就是设置...我的问题是什么? 嗯,问题是 zip 文件包含文件夹 "src\main\resources",然后是我想要在 zip 中的文件。我希望这些文件位于 zip 文件的第一层...

所以我想要 "my.zip -> my files""my.zip -> src -> main -> resources -> my files"。

我正在浏览 http://maven.apache.org/plugins/maven-assembly-plugin/assembly.html 但找不到任何可以帮助我的元素..

有什么建议吗?

我找到了答案...

您需要将 <outputDirectory>/</outputDirectory> 放入程序集描述符文件中..

<id>zip</id>
<includeBaseDirectory>false</includeBaseDirectory>

<formats>
    <format>zip</format>
</formats>
<fileSets>
    <fileSet>
        <directory>${project.basedir}/src/main/resources</directory>        
        <outputDirectory>/</outputDirectory>  
    </fileSet>
</fileSets>