热交换代理配置多模块项目

时间:2015-09-06 15:45:07

标签: java jvm hotswap jvmti dcevm


我需要帮助在项目中配置hotswap代理以热部署类文件。
在我的项目中,我们有如下项目设置:

WebProject(战争)
|
| _ _服务项目(罐子)


服务项目用作Web项目中的jar文件。因此,每当我在服务项目中对java文件进行更改时,我都希望hotswap代理使用最新版本重新加载/替换其类文件,而无需再次部署整个项目。

我已经为 jdk 1.7.51 hotswap-agent.jar 文件下载了 dcevm(动态代码演变vm)完成eclipse配置。每当我在WebProject的.java,.properties文件中进行更改时,它会自动重新加载它,而无需再次部署应用程序。现在我只想以这样的方式配置我的hotswap代理:如果我在服务项目中对java文件进行了更改,该文件在Web Project中用作jar文件,它应该再次重新加载.class文件或.jar文件。 / p>

我是否需要在服务项目的资源文件夹中再添加一个hotswap-agent.properties文件?目前我已将其添加到Web项目的资源文件夹中。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:2)

我为多模块项目配置了热插拔代理。在Web项目中,我添加了hotswap-agent.properties文件。在hotswap-agent.properties文件中添加了服务项目目标目录的路径,如此

extraClasspath = D:/ Sample / serviceproject / target / classes

现在它正在从上述目录重新加载文件。

答案 1 :(得分:1)

配置文件hotswap-agent.properties在运行时从类路径根加载(即WEB-INF / webapp项目类)。如果您有标准的maven目录布局,请将其放入src / main / resources。

使用hotswap-agent.properties中描述的extraClasspath属性:

# Add a directory prior to application classpath (load classes and resources).
#
# This may be useful for example in multi module maven project to load class changes from upstream project
# classes. Set extraClasspath to upstream project compiler output and .class file will have precedence to
# classes from built JAR file.
extraClasspath=

maven布局示例:

extraClasspath = _PATH_TO_Service_Project_ /目标/类