Frage

Ich bin auf der Suche in den Maven Plugin Wagon einige Artefakte zu versuchen, das Hochladen remote UNC-Server-Aktien (\\servername\share\directory\to\put\to), und ich habe es wie so in den POM Arbeit konfiguriert bekommen:

<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>

Dies funktioniert gut für einen Server , wenn ich gehe in -Dservername=x -Dsharename=y, aber wie kann ich es skalieren, damit ich eine deploy für QA oder Prod laufen kann, wo ich mehrere haben Server zu implementieren?

Ich habe in Betracht gezogen (und geschrieben) ein Skript ausführen mvn wagon:upload -Penvironment# mehrfach - einmal für jeden Server - aber mich fehlerhaft zu sein scheint. Wenn ich Beschuss auf ein Skript aus, diesen Prozess zu behandeln, konnte ich genauso gut Skript aus der gesamten deploy auch. Dies ist jedoch etwas wegnimmt von der Nützlichkeit von Wagon (und Maven) ...

Gibt es eine Möglichkeit, mehrere <executions> für ein Ziel zu laufen? Zum Beispiel, mehrere Profile konfiguriert wagon:upload Aufgaben ausgeführt wird, wenn ich mvn deploy -Pqa nur laufen?

War es hilfreich?

Lösung

Wenn Sie mehrere Profile verwenden möchten, könnten Sie einfach verwenden: mvn deploy -Denv=qa und lösen einige Profile auf dieser Eigenschaft und definieren die Konfiguration für Ihre severs in den Profilen. Für diese Art von Profil Aktivierung Blick auf

http://maven.apache.org/guides/introduction/ Einführung zu profiles.html

und die Suche nach

-Denvironment = test

Hier ist ein Beispiel POM, das macht zwei Ausführungen der Maven-antrun-Plugin in einem 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>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top