Question

Nous utilisons Hudson et le maven-release-plugin pour faire le communiqué construit. Maintenant, j'ai un projet qui contient un qui met ensemble tous les composants nécessaires et les emballe ensuite dans un paquet tar.gz avec la structure de répertoire souhaité.

Maintenant, je suis en train d'obtenir la libération-plugin pour déployer ce package à notre repository lors de la sortie: effectuer but, mais seulement les choses standard (sources, javadoc, POM) sont déployés

.

Je l'ai déjà lié l'objectif d'assemblage à la phase package Maven et le .tar.gz obtient la construction lors de la libération, mais pas transféré au dépôt. Tous les conseils que je fais mal ici?

Voici la configuration plug-in de montage:

<plugin>
    <artifactId>maven-assembly-plugin</artifactId>
    <version>2.2-beta-4</version>
    <configuration>
      <descriptors>
        <descriptor>src/main/assembly/distribution.xml</descriptor>
      </descriptors>
      <finalName>${pom.artifactId}-${pom.version}</finalName>
      <appendAssemblyId>false</appendAssemblyId>
      <tarLongFileMode>warn</tarLongFileMode>
    </configuration>
    <executions>
        <execution>
            <id>dist-assembly</id>
            <phase>package</phase>
            <goals>
                <goal>assembly</goal>
            </goals>
        </execution>
    </executions>
</plugin>

La commande je cours pour construire une version est

mvn release:prepare release:perform release:clean
Était-ce utile?

La solution

Pendant ce temps, j'ai trouvé 2 façons de faire ce que je voulais.

La maven-build-aide-plugin permet d'ajouter des entrées supplémentaires à la liste des objets qui doivent être déployés:

    <plugin>
         <groupId>org.codehaus.mojo</groupId>
         <artifactId>build-helper-maven-plugin</artifactId>
         <version>1.3</version>
         <executions>
           <execution>
             <id>attach-distribution</id>
             <phase>package</phase>
             <goals>
               <goal>attach-artifact</goal>
             </goals>
             <configuration>
               <artifacts>
                 <artifact>
                   <file>target/${pom.artifactId}-${pom.version}.tar.gz</file>
                   <type>tar.gz</type>
                 </artifact>
               </artifacts>
             </configuration>
           </execution>
         </executions>
       </plugin>

L'autre est aussi simple que cela et quelqu'un sur la liste de diffusion maven utilisateur a cela. Utilisation simple l'assemblage: seul but au lieu de ASSEMBLAGE: assemblage. De cette façon, l'objet généré est envoyé dans le référentiel lors de la phase de déploiement.

    <execution>
        <id>dist-assembly</id>
        <phase>package</phase>
        <goals>
            <goal>single</goal> <!-- that's all :) -->
        </goals>
    </execution>

Autres conseils

Déploiement des fichiers ne fait pas partie du plugin version du plug-in, mais deploy (version ne déploie pas des choses partout par lui-même, mais vous pouvez configurer le plugin Déployez être appelé lors d'une sortie).

Normalement, le plug-in deploy déploiera tous les artefacts du référentiel à distance, mais les assemblages ne sont pas des artefacts; Maven ne peut pas utiliser .tar.gz archives dans son référentiel de quelque façon, il n'a pas de sens de les déployer en premier lieu.

Si vous insistez pour copier des fichiers inutiles dans le référentiel, vous devez utiliser deploy:deploy-file ( voir les docs ) pour déployer un fichier et de configurer manuellement le plugin avec une exécution pour l'invoquer lors de l'étape de libération. Mais je conseille toujours contre.

Qu'est-ce que vous cherchez probablement est un moyen de télécharger un ensemble quelque part automatiquement. Je ne suis pas au courant d'un plug-in qui fait cela.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top