我正在使用多模块 Maven 项目开发 Java Web 应用程序。项目设置如下:
pom.xml
主 maven 项目,包括以下模块:persistence:
实体类和 DAObusiness:
服务定义和实现webapp:
Apache wicket Web 应用程序
依赖层次结构如下:webapp
依赖于business
,依赖于persistence
。
我还使用Jetty Maven 插件mvn -pl webapp jetty:run
在带有 main 的目录中本地运行 Web 应用程序pom.xml
。在开发应用程序时,在进行代码更改时,我希望码头服务器重新启动并自动重新加载修改后的代码文件。这在我修改webapp
模块内的文件时工作正常,但当我修改另一个模块内的文件时不起作用persistence
,例如or business
。
Maven Jetty Plugin 内部配置webapp/pom.xml
如下:
<plugin>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>9.2.2.v20140723</version>
<configuration>
<reload>automatic</reload>
<scanIntervalSeconds>1</scanIntervalSeconds>
<webApp>
<extraClasspath>../business/target/classes/;../persistence/target/classes/</extraClasspath>
</webApp>
<scanTargets>
<scanTarget>../business/target/classes</scanTarget>
<scanTarget>../persistence/target/classes</scanTarget>
</scanTargets>
</plugin>
我按照这个答案的说明进行操作。标签工作正常,因为当我在or中修改文件时,<scanTarget>
码头会重新启动。但是,这不起作用,因为修改后的文件不是由码头加载的。链接的答案使用标签。但是,我使用插件文档中指定的标签(我也尝试了旧标签,导致相同的结果)。business
persistence
<extraClasspath>
<webAppConfig>
<webApp>
<webAppConfig>
我的问题是:如何为多模块项目配置 Jetty Maven 插件,以便从其他模块重新加载修改过的文件?