J'ai un projet Maven qui est un projet enfant. Il a de nombreux projets frères et soeurs et le travail de ce projet est d'obtenir des ressources des frères et soeurs et de les empaqueter dans un fichier zip en utilisant le plugin antrun.Obtention de tous les artefacts Maven de Hudson
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<parent>
<artifactId>SystemOfRegistries</artifactId>
<groupId>someGroup</groupId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>someGroup</groupId>
<artifactId>deploy-data</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<build>
<plugins>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<configuration>
<tasks>
<!--
Place any Ant task here. You can add anything you can add
between <target> and </target> in a build.xml.
-->
<zip destfile="${project.build.directory}/${build.finalName}.zip"
whenempty="fail">
<zipfileset dir="${project.parent.basedir}/build/AG" prefix="ag"/>
</zip>
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
Cela a bien fonctionné pour la construction du zip. Cependant, le problème est que le zip n'est pas l'artefact de la construction. Et, par conséquent, il n'y a pas de lien dans Hudson pour le télécharger. Je voudrais soit comprendre comment Hudson à reconnaître cela comme un artefact de Maven, ou Maven pour se rendre compte que le ZIP est l'artefact. (J'avais l'élément d'emballage manquant et puis j'obtiendrais un JAR non désiré comme artefact).
Merci pour la réponse. Puisque j'utilise '$ {project.build.directory}/$ {build.finalName} .zip' comme nom d'artefact, et puisque je n'ai pas écrasé le defaul finalName, le nom de l'artefact résultant est le même que celui de maven insall. Je suppose que maven voit que les conventions de dénomination de maven standard sont déjà sur l'artefact et n'essaie pas de les mettre une seconde fois. – harschware