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

时间:2019-04-03 08:06:18

标签: maven maven-3 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-> src->主->资源->我的文件”,我想拥有“ my.zip->我的文件”。

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

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

我找到了答案...

您需要将<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>