plugin Maven Wagon: wagon Can: le téléchargement de téléchargement à plusieurs endroits?
-
08-10-2019 - |
Question
Je suis à la recherche dans le Maven Wagon Plugin pour tenter ajout de certains objets à actions de serveur distant UNC (de \\servername\share\directory\to\put\to
) et moi-même avons obtenu il configuré pour fonctionner comme si dans le POM:
<build>
<extensions>
<extension>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-file</artifactId>
<version>1.0-beta-7</version>
</extension>
</extensions>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>wagon-maven-plugin</artifactId>
<version>1.0-beta-3</version>
<executions>
<execution>
<id>upload-jar-to-folder</id>
<phase>deploy</phase>
<goals>
<goal>upload</goal>
</goals>
</execution>
</executions>
<configuration>
<fromDir>${project.build.directory}</fromDir>
<includes>*</includes>
<url>file://localhost///${servername}/${sharename}</url>
<toDir>directory/to/put/artifact</toDir>
</configuration>
</plugin>
...
</build>
Cela fonctionne très bien pour un serveur quand je passe à -Dservername=x -Dsharename=y
, mais comment puis-je l'échelle dehors pour que je puisse exécuter un Deploy QA ou Prod où j'ai plusieurs serveurs de déployer à?
Je l'ai considéré (et écrit) un script à exécuter mvn wagon:upload -Penvironment#
plusieurs fois - une fois pour chaque serveur - mais cela me semble erronée. Si je suis bombardements à un script pour gérer ce processus, je ne pouvais tout comme script bien le Déployez entier, aussi. Cependant, cela enlève de l'utilité du Wagon (et Maven) ...
Est-il possible d'exécuter plusieurs <executions>
pour un but? Par exemple, en cours d'exécution multiples configuré profil tâches de wagon:upload
quand je viens de lancer mvn deploy -Pqa
?
La solution
Si vous voulez utiliser plusieurs profils que vous pouvez simplement utiliser: mvn deploy -Denv=qa
et déclencher certains profils sur cette propriété et définir la configuration de vos Severs dans les profils. Pour ce genre de look activation du profil à
http://maven.apache.org/guides/introduction/ l'introduction à profiles.html
et la recherche de
-Denvironment = test
Voici un exemple POM qui fait deux exécutions du maven-plugin-antrun dans un build:
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.stackoverflow</groupId>
<artifactId>q5328617</artifactId>
<version>0.0.1-SNAPSHOT</version>
<profiles>
<profile>
<activation>
<property>
<name>env</name>
<value>qa</value>
</property>
</activation>
<id>qa1</id>
<build>
<plugins>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<id>qa1</id>
<phase>test</phase>
<configuration>
<tasks>
<echo level="info">Executing qa1</echo>
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
<dependencies>
</dependencies>
</plugin>
</plugins>
</build>
</profile>
<profile>
<activation>
<property>
<name>env</name>
<value>qa</value>
</property>
</activation>
<id>qa2</id>
<build>
<plugins>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<id>qa2</id>
<phase>test</phase>
<configuration>
<tasks>
<echo level="info">Executing qa2</echo>
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
<dependencies>
</dependencies>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>