【发布时间】:2014-11-01 17:58:43
【问题描述】:
我正在使用多模块 maven 项目开发 Java Web 应用程序。项目设置如下:
-
pom.xml主 maven 项目,包括以下模块:-
persistence:实体类和 DAO -
business:服务定义与实现 -
webapp:Apache wicket 网络应用程序
-
依赖层次如下:webapp 依赖于business,它依赖于persistence。
我还使用Jetty Maven Plugin 在主目录pom.xml 内使用mvn -pl webapp jetty:run 在本地运行Web 应用程序。在开发应用程序时,在进行代码更改时,我希望码头服务器重新启动并自动重新加载修改后的代码文件。这在我修改 webapp 模块内的文件时可以正常工作,但是当我在另一个模块内修改文件时,不起作用,例如 persistence 或 business。
Maven Jetty 插件在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>
我听从了this answer的指示。 <scanTarget> 标签工作正常,因为当我修改 business 或 persistence 中的文件时,码头会重新启动。但是,<extraClasspath> 不起作用,因为修改后的文件不是由码头加载的。链接的答案使用<webAppConfig> 标签。但是,我使用的是documentation of the plugin 中指定的<webApp> 标记(我也尝试了旧的<webAppConfig> 标记,结果相同)。
我的问题是:如何为多模块项目配置 Jetty Maven 插件,以便从其他模块重新加载修改过的文件?
【问题讨论】:
标签: java maven jetty maven-jetty-plugin maven-module