5


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

WebProject (war)
|
|_ _ Service Project(jar)


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

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

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

很感谢任何形式的帮助。

4

2 回答 2

4

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

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

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

于 2015-09-09T16:45:21.643 回答
2

配置文件 hotswap-agent.properties 在运行时从类路径根目录(即 webapp 项目的 WEB-INF/classes)加载。如果你有标准的 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_/target/classes

于 2015-09-08T19:01:32.837 回答