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?

Était-ce utile?

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!

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