Domanda

qualcuno conosce un modo per configurare un obiettivo Maven per la distribuzione su un server Tomcat dopo una build viene eseguito? So che questo è possibile utilizzando il Maven-tomcat-plugin, ma sembra che come questo funziona solo per Maven 2, mentre sto usando Maven 1.1

Al momento sto provando ad installare Hudson quindi questo sarebbe parte della mia fase intergration continua che spero si svolgerà in questo modo:

  1. Crea tutti i componenti necessari
  2. Crea la guerra e distribuire a (locale) server
  3. test di selenio Esegui

Qualsiasi aiuto con questo sarebbe molto apprezzato.

Grazie.

È stato utile?

Soluzione 3

Ho capito che il modo migliore per fare questo - la sua realtà abbastanza facile da scrivere un obiettivo Maven per trasferire la guerra. L'obiettivo potrebbe essere scritto come segue:

<goal name="deployWar" prereqs="buildWar">

    <echo message="+---------------------------------------------------+" />
    <echo message="installing war file to server" />
    <echo message="+---------------------------------------------------+" />

    <j:set var="deploy.dir" value="${server}/webapps" />

    <copy file="${maven.build.dir}/${pom.artifactId}.war"
        todir="${deploy.dir}" overwrite="true" />
</goal>

La variabile server può essere determinata nel file project.properties. Anche essere sicuri di specificare che un pre-requisito per costruire la guerra prima si tenta di distribuirlo. Spero che questo aiuti qualcuno!

Altri suggerimenti

Onestamente avrei refactoring del progetto per utilizzare Maven 2, ci sono diverse guide che possono aiutare il dolore della migrazione facilità (google maven 2 migrazione ), e c'è anche la maven-uno-plugin per convertire il vostro project.xml o il pacchetto tua Maven 1 plugin per Maven 2.

Se non è possibile farlo, è possibile utilizzare il Maven 1 formica plug per copiare la guerra alla directory webapps di Tomcat dopo che è stato confezionato. Tomcat rileverà la nuova guerra e dovrebbe hot-distribuirlo.

Devo ammettere, non so molto circa il plugin per Maven, ma faccio tutto in un semplice script che pulisce le directory di lavoro come pure (non so se il plugin Maven pulisce le directory di lavoro).

CALL mvn clean install
CALL rm C:\apps\tomcat\webapps\Foo.war 
CALL rm -rdf C:\apps\tomcat\webapps\foo
CALL rm -rdf C:\apps\tomcat\work\Catalina
CALL copy C:\webapps\workspace\Foo\target\Foo.war C:\apps\tomcat\webapps\Foo.war /y

(lo so, -1 per MS script)

Il punto è in genere si desidera pulire la directory di lavoro e la directory webapps e Maven 1 plug-formica non farlo (per quanto ne so se, e leggere dal link fornito). Tomcat è "presunto" per ricreare i file di classe in queste directory quando esplode il file di guerra, ma nessuno che ha lavorato con esso abbastanza a lungo lo sa:. Questo non è sempre il caso

Quindi, se il plugin non pulisce queste directory, è inutile, per quanto mi riguarda. Scrivi voi stessi un piccolo script a buon mercato come quello fornito. Ci vogliono 2 minuti.

webappDirectory può essere configurato per Maven-guerra-plugin per distribuire la guerra esplosa. è necessaria Niente di speciale, Maven basta eseguire l'installazione.

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1.1</version>
<configuration>
    <webappDirectory>path/to/server/deploy/dir</webappDirectory>
</configuration>
</plugin>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top