2014-09-13 10 views
8

voglio avere un modo per eseguire Maven modo che lo farà:Avviare e configurare un server wildfly e distribuire l'applicazione utilizzando wildfly-maven-plugin in 1 Maven corrono

  • avviare un'istanza del server wildfly in standalone modalità (wildfly:run)
  • distribuire l'autista hsqldb
  • aggiungere un'origine dati
  • distribuire l'applicazione

il prob LEM è che:

  • wildfly:run blocchi in modo non altri obiettivi Maven possono essere eseguite
  • l'istanza del server deve essere in esecuzione prima che possa essere configurato o un'applicazione può essere implementato (daaa)

A lavoro possibile intorno che mi viene in mente è:

  • wildfly:start
  • configurare il serv er e distribuire l'app
  • blocco fino a quando l'utente preme CTRL-C, c'è un plug-in maven che lo fa?
+1

Sto avendo lo stesso identico problema. mvn wildfly: start non blocca. Sei riuscito a trovare una soluzione? – fansonly

+1

@fansonly No, ho trovato una soluzione alternativa che non ricordo ora, ma non una soluzione definitiva. Se hai tempo, ti incoraggio a fornire la nuova funzione (https: // github.com/wildfly/wildfly-maven-plugin) che James ha menzionato nella sua risposta: una proprietà di configurazione per non registrare il gancio di arresto e lasciare in esecuzione il processo. –

+0

Cercherò di farlo se il project manager mi dà il tempo. – fansonly

risposta

4

È possibile utilizzare il parametro beforeDeployment della corsa goal (source):

<plugin> 
    <groupId>org.wildfly.plugins</groupId> 
    <artifactId>wildfly-maven-plugin</artifactId> 
    <configuration> 
     <beforeDeployment> 
      <commands> 
       <command>data-source add --jndi-name=java:jboss/datasources/OracleDS --name=testDB --connection-url=jdbc:h2:mem:test;DB_CLOSE_DELAY=-1 --driver-name=h2 --user-name=sa --password=sa</command> 
      </commands> 
     </beforeDeployment> 
    </configuration> 
</plugin> 

Se avete bisogno di librerie aggiuntive per il driver di database che si può fare qualcosa di simile (source):

module add --name=org.postgres --resources=/tmp/postgresql-9.3-1101.jdbc41.jar --dependencies=javax.api,javax.transaction.api 
/subsystem=datasources/jdbc-driver=postgres:add(driver-name="postgres",driver-module-name="org.postgres",driver-class-name=org.postgresql.Driver) 
1

Io non capisco che cosa il vostro caso d'uso o perché wildfly:start seguita da wildfly:deploy non è sufficiente.

Stai facendo test manuali o automatici?

Per il test di integrazione, se wildfly-maven-plugin non soddisfa le proprie esigenze, dare un'occhiata a Cargo e il suo supporto Maven e WildFly.

+0

perché 'wilfdly: start' non blocca, quindi una volta' wildfly: start' e 'wildfly: deploy' è completata l'istanza WildFly avviata verrà chiusa. –

2

L'obiettivo wildfly:start non si blocca e ha un gancio di arresto per distruggere il processo una volta che escono maven. Può valere la pena aggiungere una proprietà di configurazione per non registrare il hook di shutdown e lasciare il processo in esecuzione ... ma sto andando fuori tema.

Dal Maven corre obiettivi basati su una fase del ciclo di vita si potrebbe invocare l'obiettivo start e deploy in una fase che viene eseguito prima della fase package. L'obiettivo run richiede la fase package, quindi qualsiasi cosa prima dovrebbe funzionare.

+0

L'ho provato, ma quando 'wildfly: run' viene eseguito dopo' wildfly: start' tenta di avviare una nuova istanza WildFly usando le stesse porte, cosa che ovviamente fallisce. –

Problemi correlati