6

我有一个超级 POM 收集它的 2 个子子模块的版本、插件和依赖项定义:一个用于 webapp(使用 jetty:run 运行),另一个用于 DB 迁移(使用 liquibase:update “运行”)。

只要我将目录更改为子模块之一,它就可以正常工作。但是,当我在父 POM 上运行 jetty:run 或 liquibase:update 时,我希望看到插件执行“转发”到相应的子模块。

你知道这样的事情是否可以实现吗?

提前致谢,

罗尔夫

PS:抱歉更新晚了

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

数据库迁移

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

网页端

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

1 回答 1

6

如果您在其他步骤之前进行了 mvn 安装,则可以使用

mvn -pl ChildModule lifecycle

从项目的根级别。

于 2012-04-05T11:32:07.857 回答