Зараз я визначаю структуру проекту для проекту, над яким я працюю. Проект є простою реалізацією SOA, і як такий має додаток для грааль та ряд різних сервісів.
Я хотів упакувати ці служби в окремі модулі (банки), щоб їх можна було легко розгорнути окремо і не було ризику забруднення класів витратами.
Структуру та залежності проекту можна уявити як:
Grails App (war)
|__ Service Gateway (jar)
|__Service A (jar)
|__Service B (jar)
Хоча ці сервіси з часом будуть розгорнуті окремо, для зручності місцевого розвитку я хочу упакувати їх у єдине додаток для граалів до тих пір, поки не потрібно розбити їх.
Моєю кінцевою метою було вміти їх розвиватислужби так само, як і просте додаток для грааля, завдяки чому я зможу змінити будь-який клас (у будь-якому з модулів) на ходу і підняти його.
Я намагаюся, хоча бачити найкращий спосіб представити цю структуру в IntelliJ.
Я створив окремі модулі для кожного з перерахованих вище і додав залежності між ними, але очевидно, що grails не має цього поняття під час виконання.
Я прочитав про та знайшов наступні можливі рішення, усі з яких зараз почуваються трохи незадовільно, оскільки вимагає побудувати банку, що означає, що класи не можуть бути перезавантажені на льоту.
- Встановіть модулі в місцевий сховище Maven і посилайтеся на це в залежності від побудови граалів.
- Перекиньте вбудовані банки в каталог lib.
- Додайте їх як плагіни для грааля (здається, трохи важкі, оскільки вони не потребують функціональності граалів).
- Знайдіть інший спосіб включення вихідних каталогів для цих модулів на клас grails (не впевнений, чистіший спосіб зробити це).
Дякую!
Відповіді:
0 для відповіді № 1Врешті-решт, я пішов з мультимодулем Maven build. Ключ до розгортання льоту коду - це використання JRebel для моніторингу вихідних каталогів та перезавантаження класів при їх зміні.