У меня есть два проекта:
- Игровой сервер - будет упаковывать и запускать на облачной машине для размещения бэкэнда.
- Игровой клиент - будет упаковывать и устанавливать на ПК каждого пользователя/Phone/Tablet.
Я хочу сохранить их в разных проектах, чтобы разработчики не начинали напрямую использовать серверные классы в клиенте или наоборот.
Должна использоваться общая функциональностьнезависимо отслеживается в третьем, четвертом или пятом проекте:
- Компоненты - PositionComponent, IdComponent и т. д.
- MapModel - как игровая карта представляется в виде сетки
Таким образом, и клиент, и сервер должны иметь возможность совместно использовать версионную копию компонентов и модуля MapModel.Они могут быть изменены и развернуты изолированно.
У меня проблема с Gradle.Я не уверен, как получить эту структуру, чтобы сохранить независимость 3+ проектов.Я пришел из Maven, где вы можете локально установить каждый модуль maven в свой локальный репозиторий maven, и каждый из них извлечет эту версионную копию.Немного болезненно для разработчиков, но основные модули должны часто меняться после их стабилизации.
В корне Сервера и Клиента я по сути хочу сделать это:
include 'desktop', 'core', 'networking'
includeBuild '../SomePathTo/components'
includeBuild '../SomePathTo/mapModel'
Любые предложения, если этовозможно с Gradle?Я хорошо осмотрелся, и все, кажется, применяют шаблон подпроекта, но я не думаю, что это подходит для моего изолированного развертывания и разделения задач.
Есть куча этих вопросов вокруг: Невозможно импортировать gradle-проект в другой gradle-проект