У меня есть проект scala, управляемый SBT, который включает в себя ряд классов, которые являются адаптерами, которые ссылаются на проприетарный код. Они имеют коммерческие лицензии, которые препятствуют распространению связанных библиотек, а также код адаптера, который я написал сам.Как структурировать проект JVM для изоляции проприетарного кода?
Я хочу изолировать эти адаптеры от остальной части моего кода, чтобы теоретически распределять мой проект как с открытым исходным кодом. Я должен обеспечить, чтобы каждый адаптер
- Контролируется отдельно.
- Может быть выборочно включать/выключать во время создания JAR компиляции & (вроде как
--with-xxx
при запуске./configure
в проекте C)
Что должно структура каталогов что-то вроде этого выглядеть? Что относительно проекта (-ов) SBT? Я хотел бы придерживаться обычной структуры каталогов Gradle, если это возможно.
Проблема заключается в том, что каждый адаптер зависит от основного проекта (т. Е. Наследует интерфейс Adapter
, определенный в основном проекте), и в свою очередь основной проект зависит от отдельных адаптеров. Поэтому я не уверен, как установить это, чтобы избежать круговых зависимостей, изолируя код ядра от кода адаптера.
Являются зависимости адаптеров для основного проекта, необходимого для составления основного исходного кода или только для тестов? – Teliatko