2012-03-27 19 views
6

Mam wersje super zbierania POM, wtyczki & definicje zależności dla jego 2 podmodułów potomnych: jeden dla webapp (uruchomiony z pomostem: run), drugi dla migracji DB (" uruchomiony "with liquibase: update).Maven - delegowanie wykonania wtyczki do modułu podległego

Działa to dobrze, o ile zmieniłem katalog na jeden z submodułów ". Jednak, gdy uruchomię pomost: uruchom lub płyn: zaktualizuj na macierzystym POM, chciałbym zobaczyć wykonanie wtyczki "przekazane" do odpowiedniego modułu.

Czy masz pojęcie, czy coś takiego można osiągnąć?

Dzięki z góry,

Rolf

P.S .: przepraszam za opóźnienie w aktualizacji

RODZICÓW 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 MIGRACJE

<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

Czy możesz udostępnić odpowiedni fragment pom? Na przykład, czy używasz '' w twoim pom-rodzicu? – Raghuram

+0

Czy możesz pokazać pom? Ponieważ w przeciwnym razie nie można podać żadnych sugestii. – khmarbaise

+0

zrobione, przepraszam za moją spóźnioną odpowiedź. Jak widać, wszystko jest już zebrane w macierzystym pliku pom. Jednak obie wtyczki są skutecznie używane tylko na poziomie podrzędnym. Co byłoby miłego byłoby powiedzieć Mavenowi, że mvn liquibase: update (lub updateSQL), a także mvn jetty: uruchom na poziomie nadrzędnym, aby przekazać wywołanie odpowiednich projektów podrzędnych. – Rolf

Odpowiedz

6

Jeśli dokonaliśmy mvn zainstalować przed innymi etapami można użyć

mvn -pl ChildModule lifecycle 

z poziomu głównego projektu.

Powiązane problemy