Конфигурация агента горячей замены для многомодульного проекта


Мне нужна помощь в настройке агента горячей замены в моем проекте для горячего развертывания файлов классов.
В моем проекте у нас есть настройка проекта, как показано ниже:

< б> WebProject (война)
|
|_ _ Проект службы (jar)

Проект службы используется как файл jar в веб-проекте. Поэтому всякий раз, когда я делаю изменения в java-файле внутри сервисного проекта, я хочу, чтобы агент горячей замены перезагружал/заменял свой файл класса последним без необходимости повторного развертывания всего проекта.

Я загрузил dcevm (динамическая эволюция кода vm) для jdk 1.7.51 и файл hotswap-agent.jar, а также выполнил настройку eclipse. . Всякий раз, когда я делаю изменения в файлах .java, .properties WebProject, он автоматически перезагружает их без повторного развертывания приложения. Теперь я просто хочу настроить свой агент горячей замены таким образом, чтобы, если я делаю изменения в файле java внутри проекта службы, который используется в качестве файла jar внутри веб-проекта, он должен снова перезагрузить этот файл .class или файл .jar.

Нужно ли мне добавить еще один файл hotswap-agent.properties в папку ресурсов проекта службы? В настоящее время я добавил его в папку ресурсов веб-проекта.

Любая помощь очень ценится.


person Onkar Salvi    schedule 06.09.2015    source источник


Ответы (2)


Я настроил агент горячей замены для многомодульного проекта. В веб-проект я добавил файл hotswap-agent.properties. В файле hotswap-agent.properties добавлен путь к целевому каталогу сервисных проектов, подобный этому

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

и теперь он перезагружает файлы из вышеупомянутого каталога.

person Onkar Salvi    schedule 09.09.2015
comment
Действительно ли HA с Tomcat и несколькими проектами работает для вас? У меня есть эта проблема со статическими классами. Я подготовил пример проекта для воспроизведения. Не могли бы вы проверить правильность его конфигурации? - person mihca; 22.01.2021

Файл конфигурации hotswap-agent.properties загружается во время выполнения из корня пути к классам (например, WEB-INF/classes для проекта веб-приложения). Если у вас стандартный макет каталога 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_/цель/классы

person edudant    schedule 08.09.2015
comment
Спасибо за вашу помощь :) - person Onkar Salvi; 09.09.2015
comment
Будет ли это работать, если целевая банка хранится вне файла войны? - person CHEM_Eugene; 02.12.2016