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

Hot Swap agent Configuration for multi module project


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

Web 项目 (war)
|
|_ _ 服务项目(罐)


服务项目在web项目中用作jar文件。因此,每当我在服务项目中对 java 文件进行更改时,我希望热交换代理将其 reload/replace 其 class 文件与最新的文件进行更改,而无需再次部署整个项目。

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

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

非常感谢任何帮助。

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

使用 extraClasspath 属性,如 hotswap-agent.properties:

中所述
# 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_/target/classes

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

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

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