Я делаю плагины, запрашиваемые сервером для игры Minecraft, используя api Кран
В этом API есть класс Player. Для целей этих плагинов (и потому что это проще) мне нравится создавать свой «собственный класс плеера».
Итак, есть Plugin1, Plugin2 и Plugin3. Я назову их API, Faction и Scoreboard.
Плагины API содержат мой собственный класс игрока, у которого есть методы, которые относятся к некоторым другим классам фракций и табло. В зависимостях проекта SO API есть Scoreboard и Faction. НО, поскольку мне также нужно использовать свой собственный класс игрока в Scoreboard и Faction, они оба имеют зависимость проекта от API.
В основном Табло -> API <- Фракция, НО Фракция <- API и Табло <- API
Итак, у меня проблема с ездой на велосипеде. И я не знаю, как это решить, потому что хочу иметь несколько четких и отдельных проектов. Я не считаю это большой проблемой, поскольку все выглядит стабильно, но я провел несколько исследований и обнаружил, что это проблема.
Я надеюсь, что это было достаточно ясно. Спасибо за любую помощь.




Рекомендуется разделить общие компоненты, используемые в нескольких проектах, в общую библиотеку. Таким образом, библиотека может быть импортирована в проекты, где это необходимо, и вы избежите циклических зависимостей.
Я бы сказал, извлеките все POJO, такие как ваш собственный Player, в библиотеку и используйте ее во всех этих проектах. Создайте новый класс в любом из проектов для той части кода, которая использует другие классы, такие как Scoreboard или Faction. Или используйте интерфейсы и реализуйте их в своих проектах.
Под POJO вы имеете в виду простой старый объект Java? Какой в основном класс, у которого есть только геттер и сеттер? И я не понимаю, как использование интерфейсов решило бы эту проблему ...