2010-05-06 1 views
0

Je dois télécharger à partir de 2 emplacements svn différents dans le même répertoire de sortie. J'ai donc configuré 2 exécutions différentes. Mais chaque fois qu'il exécute une extraction supprime le répertoire de sortie afin qu'il supprime également les projets déjà téléchargés.maven scm plugin supprimant le dossier de sortie dans chaque exécution

Voici un échantillon de mon pom.xml:

<profile> 
    <id>checkout</id> 
    <activation> 
    <property> 
     <name>checkout</name> 
     <value>true</value> 
    </property> 
    </activation> 
    <build> 
    <plugins> 
     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-scm-plugin</artifactId> 
     <version>1.3</version> 
     <configuration> 
      <username>${svn.username}</username> 
      <password>${svn.pass}</password> 
      <checkoutDirectory>${path}</checkoutDirectory> 
      <skipCheckoutIfExists/> 
     </configuration> 
     <executions> 
      <execution> 
      <id>checkout_a</id> 
      <configuration> 
       <connectionUrl>scm:svn:https://host_n/folder</connectionUrl> 
       <checkoutDirectory>${path}</checkoutDirectory> 
      </configuration> 
      <phase>process-resources</phase> 
      <goals> 
       <goal>checkout</goal> 
      </goals> 
      </execution> 
      <execution> 
      <id>checkout_b</id> 
      <configuration> 
       <connectionUrl>scm:svn:https://host_l/anotherfolder</connectionUrl> 
       <checkoutDirectory>${path}</checkoutDirectory> 
      </configuration> 
      <phase>process-resources</phase> 
      <goals> 
       <goal>checkout</goal> 
      </goals> 
      </execution> 
     </executions> 
     </plugin> 
    </plugins> 
    </build> 
</profile> 

Est-il possible d'empêcher les exécutions de supprimer le dossier $ {path}?


je suis venu avec une solution, mais je ne peux pas le faire fonctionner:

J'ajouté au profil d'une exécution de maven-plug-in propre:

<profile> 
    <id>checkout</id> 
    ... 
    <plugin> 
    <artifactId>maven-clean-plugin</artifactId> 
    <executions> 
     <execution> 
     <id>not-clean</id> 
     <configuration> 
      <filesets> 
      <fileset> 
       <directory>${path}</directory> 
       <excludes> 
       <exclude>*/*</exclude> 
       </excludes> 
       <followSymlinks>false</followSymlinks> 
      </fileset> 
      </filesets> 
     </configuration> 
     <phase>initialize</phase> 
     <goals> 
      <goal>clean</goal> 
     </goals> 
     </execution> 
    </executions> 
    </plugin> 

Mais je ne peux pas réaliser comment exclure tout dans le dossier.

Une idée?

+0

Pour mettre en forme du code, indiquez chaque ligne de quatre espaces. –

+0

Pouvez-vous expliquer pourquoi vous avez besoin de code de caisse dans Maven? Et pourquoi avez-vous besoin de deux endroits? Cela ne devrait-il pas être fait par un serveur d'intégration continue (par exemple Hudson?) – khmarbaise

+0

Ah ... vous ne pouvez pas extraire deux fois le même emplacement cible avec Subversion et aucun autre VCT. – khmarbaise

Répondre

3

Oui: placez chaque emplacement SVN dans un module Maven (un sous-projet), puis créez un troisième projet contenant le code pour joindre les deux. Contexte: Avec Maven, vous avez toujours un projet par fichier POM.xml. Si vous pensez que vous devez joindre des données à plusieurs endroits, créez des modules, puis utilisez un POM parent pour les joindre dans un «projet de réacteur».

Pour construire, invoquer Maven dans le "projet de réacteur" parent.

+0

Merci pour votre relecture rapide. Mais je ne peux pas vraiment modifier la structure des projets (c'est un projet multi-modules). – ssedano

+0

Alors vous êtes déjà à mi-chemin. Je parle d'un projet multi-modules. Le fait est que vous ne pouvez pas extraire deux sources SCM dans le même dossier, car chaque appel supprimera tout ce qui ne peut pas être trouvé dans la source. Vous devez donc passer à deux endroits différents * ou * vous devez utiliser une tâche de fourmis personnalisée. Voir le plugin antrun. –

0

J'ai modifié la source du plugin maven-scm. Ajout de fonctionnalités dont j'avais besoin

Merci pour votre temps et votre aide!

Questions connexes