Конфигурация на агент за гореща смяна за многомодулен проект


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

< b> Уебпроект (война)
|
|_ _ Service Project(jar)

Service project се използва като jar файл в уеб проект. Така че всеки път, когато правя промени в java файл в сервизен проект, искам агентът за hotswap да презареди/замени своя клас файл с най-новия, без да е необходимо да внедрявам целия проект отново.

Изтеглих dcevm(динамическа еволюция на кода vm) за jdk 1.7.51и файл hotswap-agent.jar също така и направих конфигурация на eclipse . Всеки път, когато правя промени в .java, .properties файловете на WebProject, той го презарежда автоматично, без да разгръща приложението отново. Сега просто искам да конфигурирам моя hotswap агент по такъв начин, че ако правя промени в 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 се зарежда по време на изпълнение от rootpath на класа (т.е. WEB-INF/класове за проект на 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

person edudant    schedule 08.09.2015
comment
Благодаря за вашата помощ :) - person Onkar Salvi; 09.09.2015
comment
Ще работи ли това, ако target jar се съхранява извън war file? - person CHEM_Eugene; 02.12.2016