Итак, я работаю над проектом, который на данный момент состоит из двух частей.
Одно из них — настольное приложение. Другое — серверное приложение.
Оба этих приложения имеют общие библиотеки.
На данный момент у меня есть оба из них в одном проекте, но мне интересно, может быть, мне следует разделить их.
Как кто-то справляется с этим?
Что я могу думать о том, что на самом деле у меня есть 3 проекта, один из которых содержит общие библиотеки, один для сервера, а другой для настольной части. А затем вы создаете общие библиотеки, отправляете их в свой локальный репозиторий maven и можете включать их в оба?
Теперь я просто могу включить их через компиляцию («общая библиотека»), а затем общие библиотеки просто скомпилировать, если были изменения. При другом подходе мне пришлось бы компилировать общие библиотеки каждый раз отдельно.
Мне просто интересно, как в бизнес-приложениях обрабатываются такие вещи и есть ли какие-то архитектурные шаблоны для таких проблем?
Да, но дело в том, что мне не нужны подпроекты, я хочу их полностью разделить, я хочу иметь две отдельные базы кода для сервера/рабочего стола. Вот в чем был вопрос, я думаю.
Вы должны разделить их на три разных проекта и использовать Gradle Composite Build, когда хотите разрабатывать (некоторые из них) вместе. Составная сборка обеспечивает лучшую изоляцию, чем многопроектная сборка, и хорошо масштабируется, когда у вас все больше и больше установок.
просто используйте docs.gradle.org/current/userguide/multi_project_builds.html ! это полностью соответствует вашим потребностям. создать напр.
common
,server
иdesktop
подпроекты (см. примеры здесь docs.gradle.org/current/userguide/…). общая конфигурация, используемая этими тремя подпроектами, может быть централизована в сценарии сборки корневого проекта.