2012-03-27 7 views
6

Ho una super versione di raccolta POM, plug-in & definizioni di dipendenza per i suoi due sottomoduli figlio: uno per una webapp (con jetty: run), l'altro per le migrazioni DB (" in esecuzione "con liquibase: aggiornamento).Maven - delegare l'esecuzione del plug-in al sottomodulo

Questo funziona bene fino a quando ho cambiato la directory in uno dei sottomoduli '. Tuttavia, quando eseguo il jetty: run o liquibase: aggiornamento sul POM padre, mi piacerebbe vedere l'esecuzione del plugin "inoltrata" al sottomodulo corrispondente.

Avete qualche idea se una cosa del genere può essere raggiunta?

Grazie in anticipo,

Rolf

P.S .: dispiace per il ritardo di aggiornamento

GENITORE POM

<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> 
    <modules> 
      <module>webapp</module> 
      <module>db-migrations</module> 
    </modules> 

    <!-- [...] --> 

    <pluginManagement> 
      <!-- [...] --> 
      <plugins> 
        <!-- JETTY --> 
        <plugin> 
          <groupId>org.mortbay.jetty</groupId> 
          <artifactId>maven-jetty-plugin</artifactId> 
          <version>${jetty-plugin.version}</version> 
          <configuration> 
            <contextPath>/</contextPath> 
            <scanIntervalSeconds>10</scanIntervalSeconds> 
            <connectors> 
              <connector implementation="org.mortbay.jetty.nio.SelectChannelConnector"> 
                <port>9999</port> 
                <maxIdleTime>60000</maxIdleTime> 
              </connector> 
            </connectors> 
          </configuration> 
        </plugin> 
        <!-- LIQUIBASE --> 
        <plugin> 
          <groupId>org.liquibase</groupId> 
          <artifactId>liquibase-maven-plugin</artifactId> 
          <version>${liquibase.version}</version> 
          <configuration> 
            <changeLogFile>src/main/resources/tv/esporx/master.xml</changeLogFile> 
            <propertyFile>${env.file}</propertyFile> 
          </configuration> 
          <executions> 
            <execution> 
              <phase>process-resources</phase> 
              <goals> 
                <goal>updateSQL</goal> 
                <goal>update</goal> 
              </goals> 
            </execution> 
          </executions> 
        </plugin> 
    </pluginManagement> 
</project> 

DB MIGRAZIONI

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

    <!-- [...] --> 

    <dependencies> 
      <dependency> 
        <groupId>mysql</groupId> 
        <artifactId>mysql-connector-java</artifactId> 
      </dependency> 
    </dependencies> 

    <build> 
      <plugins> 
        <plugin> 
          <groupId>org.liquibase</groupId> 
          <artifactId>liquibase-maven-plugin</artifactId> 
        </plugin> 
      </plugins> 
    </build> 
</project> 

WebApp

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

    <!-- [...] --> 

    <build> 
      <plugins> 
        <plugin> 
          <groupId>org.mortbay.jetty</groupId> 
          <artifactId>maven-jetty-plugin</artifactId> 
        </plugin> 
      </plugins> 
    </build> 
</project> 
+0

Puoi condividere un frammento di pom pertinente? Ad esempio, stai usando '' nel tuo genitore? – Raghuram

+0

Puoi mostrare i pom? Perché altrimenti non è possibile dare alcun suggerimento. – khmarbaise

+0

fatto, mi dispiace per la mia risposta in ritardo. Come puoi vedere, tutto è già raccolto nel file pom principale. Tuttavia, entrambi i plugin sono utilizzati efficacemente solo a livello di figlio. Sarebbe bello dire a Maven che mvn liquibase: update (o updateSQL) e mvn jetty: eseguire a livello padre per inoltrare l'invocazione ai progetti figlio appropriati. – Rolf

risposta

6

Se hai fatto un mvn installare prima altri passi è possibile utilizzare

mvn -pl ChildModule lifecycle 

dal livello principale del progetto.

Problemi correlati