使用程序集插件创建多个 zip 文件 - 未找到程序集描述符

jav*_*els 5 plugins maven maven-assembly-plugin

除了在我的 pom 中创建一个 war 文件(效果很好)之外,我还尝试创建几个仅包含部分内容的 ZIP 文件。以前,我只有一个 zip 文件,并使用 zip 格式创建了自己的程序集描述符,效果很好。当我想添加第二个具有不同内容的 zip 文件时,我必须将插件更改为多次执行。现在,当我运行它时,我收到一条错误消息,指出未找到程序集描述符并且构建失败。

有趣的是,它实际上正在做它需要做的一切。它创建了 war 文件。它创建了两个 zip 文件,尽管它说它未能这样做。但是这个 Maven 构建是由自动部署过程运行的许多构建之一,如果它收到错误消息,那就不会成功。

这是我的 pom 的插件部分:

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.6</version>
<executions>
    <execution>
        <id>zip-metricsscnapshot</id>
        <phase>package</phase>
        <goals>
            <goal>single</goal>
        </goals>
        <configuration>
            <outputDirectory>src/main/webapp/resources</outputDirectory>
            <finalName>metricssnapshot</finalName>
            <descriptors>
                <descriptor>src/main/assembly/zip.xml</descriptor>
            </descriptors>
        </configuration>
    </execution>
    <execution>
        <id>zip-metricdetails</id>
        <phase>package</phase>
        <goals>
            <goal>single</goal>
        </goals>
        <configuration>
            <outputDirectory>src/main/webapp/resources</outputDirectory>
            <finalName>metricdetails</finalName>
            <descriptors>
                <descriptor>src/main/assembly/details-zip.xml</descriptor>
            </descriptors>
        </configuration>
    </execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)

解决了

附录:

我使用clean yuicompressor:compress assembly: assembly package运行 Maven 。

我的 src/main/Assembly 目录包含两个文件,zip.xml 和details-zip.xml。除了元素和文件集。这是zip.xml文件:

<assembly
    xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd">
    <id>widget</id>
    <baseDirectory>/</baseDirectory>
    <formats>
        <format>zip</format>
    </formats>
    <fileSets>
        <fileSet>
            <outputDirectory>/</outputDirectory>
            <directory>src/main/webapp/resources/metricssnapshotwidget</directory>
            <excludes>
                <exclude>**/metricssnapshotwidget.js</exclude>
                <exclude>**/metricssnapshotwidget.css</exclude>
            </excludes>
        </fileSet>
    </fileSets>
</assembly>
Run Code Online (Sandbox Code Playgroud)