簡體   English   中英

如何使用 Maven 程序集插件僅壓縮特定目錄

[英]How to zip only specific directories using maven assembly plugin

我在構建項目時使用 maven-assembly-plugin 創建項目的 zip 文件。 這是成功的。 現在我想要的是只壓縮項目中的特定目錄。

這是我以前使用的pom中插件的代碼。

 <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-assembly-plugin</artifactId>
                <executions>
                    <execution>
                        <id>make shared resources</id>
                        <goals>
                            <goal>single</goal>
                        </goals>
                        <phase>package</phase>
                        <configuration>
                            <descriptors>
                                <descriptor>resource.xml</descriptor>
                            </descriptors>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

而resource.xml 文件如下。

<assembly>
    <id>resources</id>
    <formats>
        <format>zip</format>
    </formats>
    <includeBaseDirectory>false</includeBaseDirectory>
    <fileSets>
        <fileSet>
            <!-- Since it bundles all the units -->
            <directory></directory>
            <outputDirectory>/project</outputDirectory>
            <excludes>
                <exclude>pom.xml</exclude>
                <exclude>*.iml</exclude>
                <exclude>*.jar</exclude>
                <exclude>**/src/**</exclude>
                <exclude>**/target/**</exclude>
                <exclude>resource.xml</exclude>
            </excludes>
        </fileSet>
    </fileSets>
</assembly>

我只想在 maven 構建中壓縮項目的一些目錄。

例如,我在項目中有以下文件夾結構。

project

   |_directories

         |_dir1
             |_ ....
         |_dir2
             |_ ....
         |_dir3
            |_ ....
         |_pom.xml

我想要的是制作僅包含目錄文件夾的 zip 文件。 解壓縮我的 zip 文件時,它應該只包含其中的四個目錄。

我怎樣才能做到這一點? maven-assembly-plugin 是否足以做到這一點,還是我應該創建一個 mojo?

您誤用了directoryoutputDirectory

directory是項目中要壓縮的文件所在的路徑(因此在您的情況下應該是directories ), outputDirectory是生成 zip 文件內的文件夾,文件集所在的位置(因為您不想要頂級目錄, 應該是/ ):

<assembly>
    <id>resources</id>
    <formats>
        <format>zip</format>
    </formats>
    <includeBaseDirectory>false</includeBaseDirectory>
    <fileSets>
        <fileSet>
            <!-- Take everything inside the directories folder -->
            <directory>directories</directory>
            <!-- And place it inside the root of the zip file -->
            <outputDirectory>/</outputDirectory>
        </fileSet>
    </fileSets>
</assembly>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM