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}/../
,这解决了这些问题。算不上优雅,但简单高效。
我有一个 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}/../
,这解决了这些问题。算不上优雅,但简单高效。