Maven-将插件执行委托给子模块
我已经为它的两个子模块提供了一个超级POM收集版本、插件和依赖项定义:一个用于webapp(使用jetty:run运行),另一个用于DB迁移(“使用liquibase:update运行”) 只要我将目录更改为子模块中的一个子模块,这就可以正常工作。 但是,当我在父POM上运行jetty:run或liquibase:update时,我希望看到插件执行“转发”到相应的子模块 你知道这样的事情能否实现吗 提前感谢, 罗尔夫 注:很抱歉更新太晚 母体聚甲醛Maven-将插件执行委托给子模块,maven,multi-module,Maven,Multi Module,我已经为它的两个子模块提供了一个超级POM收集版本、插件和依赖项定义:一个用于webapp(使用jetty:run运行),另一个用于DB迁移(“使用liquibase:update运行”) 只要我将目录更改为子模块中的一个子模块,这就可以正常工作。 但是,当我在父POM上运行jetty:run或liquibase:update时,我希望看到插件执行“转发”到相应的子模块 你知道这样的事情能否实现吗 提前感谢, 罗尔夫 注:很抱歉更新太晚 母体聚甲醛 <project xmlns="http
<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>
4.0.0
网络应用
数据库迁移
org.mortbay.jetty
maven jetty插件
${jetty plugin.version}
/
10
9999
60000
org.liquibase
liquibase maven插件
${liquibase.version}
src/main/resources/tv/esporx/master.xml
${env.file}
过程资源
更新SQL
更新
数据库迁移
<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>
4.0.0
mysql
mysql连接器java
org.liquibase
liquibase maven插件
网络应用
<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.0.0
org.mortbay.jetty
maven jetty插件
如果您在使用其他步骤之前安装了mvn
mvn -pl ChildModule lifecycle
从项目的根级别开始。能否共享相关pom片段?例如,您是否在父pom中使用了
?是否可以显示pom的?因为否则就不可能给出任何建议。完成了,很抱歉我回复晚了。如您所见,所有内容都已收集在父pom文件中。然而,这两个插件仅在子级有效使用。最好告诉Maven在父级运行mvn liquibase:update(或updateSQL)和mvn jetty:run,将调用转发到适当的子项目。