plugin Maven scm suppression dossier de sortie dans chaque exécution
-
03-10-2019 - |
Question
Je dois télécharger à partir de 2 endroits différents svn dans le même répertoire de sortie. Donc, je 2 paramétrées différentes exécutions. Mais chaque fois qu'il exécute une caisse supprime le répertoire de sortie il supprime également les projets déjà téléchargés.
Voici un exemple 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 l'obtenir au travail:
I ajouté au profil d'une exécution de plug-in-clean-maven:
<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 se rendre compte comment exclure tout dans le dossier.
Une idée?
La solution
Oui: Mettez chaque emplacement SVN dans un module Maven (un sous-projet), puis créer un troisième projet qui contient le code pour joindre les deux
.Arrière-plan: Avec Maven, vous avez toujours un projet par pom.xml. Si vous sentez que vous devez joindre des données à partir de plusieurs endroits, créer des modules, puis utiliser un POM parent pour les rejoindre dans un « projet de réacteur ».
Pour construire, Invoke Maven dans le "projet de réacteur" parent.
Autres conseils
J'ai modifié la source du maven-plugin-scm. Ajout d'une fonctionnalité dont je avais besoin.
Merci pour votre temps et votre aide!