2012-03-27 6 views
6

Tengo una super recopilación de POM versiones, complemento & definiciones de dependencia para sus 2 submódulos secundarios: uno para una aplicación web (ejecutándose con embarcadero: ejecutar), el otro para migraciones de DB (" corriendo "con liquibase: actualización).Maven - delegar la ejecución del complemento al submódulo

Esto funciona bien siempre que cambie el directorio a uno de los submódulos '. Sin embargo, cuando ejecuto embarcadero: ejecutar o liquibase: actualizar en el POM principal, me gustaría ver la ejecución del complemento "reenviada" al submódulo correspondiente.

¿Tiene alguna idea de si se puede lograr tal cosa?

Gracias de antemano,

Rolf

P.S .: lo siento por el retraso en la actualización

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

<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

¿Puede compartir el fragmento relevante de pom? Por ejemplo, ¿estás usando '' en tu pom padre? – Raghuram

+0

¿Puedes mostrar el pom? Porque de lo contrario no es posible dar ninguna sugerencia. – khmarbaise

+0

hecho, disculpa por mi respuesta tardía. Como puede ver, todo ya está reunido dentro del archivo pom principal. Sin embargo, ambos complementos solo se usan de manera efectiva en el nivel secundario. Lo que sería bueno sería decirle a Maven que mvn liquibase: update (o updateSQL), así como mvn embarcadero: ejecutar en el nivel principal para reenviar la invocación a los proyectos secundarios apropiados. – Rolf

Respuesta

6

Si has hecho un mvn instalar antes de otros pasos que puede utilizar

mvn -pl ChildModule lifecycle 

desde el directorio raíz del proyecto.

Cuestiones relacionadas