Как использовать агент DCEVM/Hotswap с обновлением jar-файла?

Я запускаю приложение загрузки java spring в виде файла jar с агентом горячей замены DCEVM. Когда я изменяю некоторые файлы классов в моем файле jar, приложение не перезагружает эти изменения. Но если я извлеку свой файл jar и запущу свое приложение как простой файл класса java, добавив все зависимости к пути к классу (например, как это делает IntelliJ Idea), то замените любой файл класса, который он успешно перезагружает.

Запуск извлеченного JAR-файла:

java -XXaltjvm=dcevm -javaagent:path/hot-swap/hotswap-agent-1.3.1-SNAPSHOT.jar=autoHotswap=true -Dspring.profiles.active=local -Dserver.port=8082 -classpath path/jdk1.8.0_191.jdk/Contents/Home/jre/lib/charsets.jar:--jdk-lib-jars:./path/classes:..other-jar-file-path com.company.app.App

после выполнения вышеуказанной команды, если я вношу какие-либо изменения и перекомпилирую, а затем заменяю обновленный файл класса, тогда изменения обнаруживаются, и мое приложение отражает изменения.

HOTSWAP AGENT: 15:35:55.349 RELOAD (org.hotswap.agent.config.PluginManager) - Reloading classes [com.company.controller.HealthController] (autoHotswap)

Я получаю журнал выше, который говорит мне, что класс перезагружен. все работает нормально.

Запуск JAR-файла:

java -XXaltjvm=dcevm -javaagent:path/hot-swap/hotswap-agent-1.3.1-SNAPSHOT.jar=autoHotswap=true -Dspring.profiles.active=local -Dserver.port=8081 -jar app.jar

После запуска Если я обновлю файл jar с помощью следующей команды:

jar uf app.jar path/HealthController.class

jar обновляется, но изменения не отражаются, и журнал не создается.


person Mohd Waseem    schedule 22.09.2019    source источник
comment
после разговора с одним из участников выясняется, что обновление файла jar не поддерживается. Мне пришлось запустить простое Java-приложение в нашей среде разработки для поддержки горячей замены.   -  person Mohd Waseem    schedule 25.09.2019


Ответы (1)


HotswapAgent не обнаруживает модификацию класса внутри файла jar. Вместо этого вы можете использовать параметр конфигурации extraClasspath. Посмотрите на http://hotswapagent.org/mydoc_configuration.html, как его настроить.

person skybber    schedule 06.01.2020