Maven 生成的 zip 文件包含旧 war 文件

Maven generated zip file contains old war file

我有一个 multi-module Maven projet,我想构建一个 zip 文件,其中包含要在生产服务器上交付的所有文件,这意味着一个 war 文件和一堆 shellscript .

这里是我的一些摘录 parent pom.xml:

    <modules>
        <module>an-fwk</module>
        <module>eloi-model</module>
        <module>eloi-service</module>
        <module>eloi-facade</module>
        <module>eloi-web</module>
    </modules>

    ...
    
    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-assembly-plugin</artifactId>
                        <version>2.5.3</version>
                        <inherited>false</inherited>
                        <executions>
                            <execution>
                                <id>Génération du livrable 3/5(1) : assemblage de l'archive eloi-batch</id>
                                <phase>process-sources</phase>
                                <goals>
                                    <goal>single</goal>
                                </goals>
                                <configuration>
                                    <descriptor>
                                        ${assembly.descriptor.dir}/eloi-batch.xml
                                    </descriptor>
                                    <finalName>eloi-batch</finalName>
                                    <appendAssemblyId>false</appendAssemblyId>
                                    <outputDirectory>${basedir}/${livrable.dir}</outputDirectory>
                                </configuration>
                            </execution>
                            <execution>
                                <id>Génération du livrable 3/5(2) : assemblage de l'archive publicationweb</id>
                                <phase>process-resources</phase>
                                <goals>
                                    <goal>single</goal>
                                </goals>
                                <configuration>
                                    <descriptor>
                                        ${assembly.descriptor.dir}/publicationweb.xml
                                    </descriptor>
                                    <finalName>publicationweb</finalName>
                                    <appendAssemblyId>false</appendAssemblyId>
                                    <outputDirectory>${basedir}/${livrable.dir}</outputDirectory>
                                </configuration>
                            </execution>
                            <execution>
                                <id>Génération du livrable 3/5(3) : assemblage de l'archive publicationReferentiel</id>
                                <phase>process-resources</phase>
                                <goals>
                                    <goal>single</goal>
                                </goals>
                                <configuration>
                                    <descriptor>
                                        ${assembly.descriptor.dir}/publicationReferentiel.xml
                                    </descriptor>
                                    <finalName>publicationReferentiel</finalName>
                                    <appendAssemblyId>false</appendAssemblyId>
                                    <outputDirectory>${basedir}/${livrable.dir}</outputDirectory>
                                </configuration>
                            </execution>
                            <!-- Here I generate the zip file -->
                            <execution>
                                <id>Génération du livrable : Création du zip pour Artifactory</id>
                                <phase>post-site</phase>
                                <goals>
                                    <goal>single</goal>
                                </goals>
                                <configuration>
                                    <appendAssemblyId>false</appendAssemblyId>
                                    <descriptors>
                                        <descriptor>${assembly.descriptor.dir}/zip.xml</descriptor>
                                    </descriptors>
                                    <outputDirectory>${basedir}/artifactory</outputDirectory>
                                    <finalName>${deliverable.file.name}</finalName>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>

在eloi-web项目中生成了war文件。所以我有一个问题,因为 parent pom.xml 首先执行,所以我实际上得到了我的 zip 文件,但是使用旧版本的 war 文件,在构建之前,它崩溃了如果我先打扫。我不知道如何解决这个问题。

我通过将 zip 程序集移动到 eloi-web 模块的 pom.xml 解决了这个问题。我之前尝试过,但遇到了其他问题,因为 ${basedir} 模块中的目录与父目录中的目录不同。一位同事建议使用 ${basedir}/../,这解决了这些问题。算不上优雅,但简单高效。