Как я могу поделиться определением Simple Build Tool module project
между многими родительскими проектами?
и в то же время
включить определение проекта модуля в каждый файл сборки родительского проекта?
Пояснение:
У меня есть родительский проект, проект модуля Dao , проект модуля App и проект Core . Оба проекта модулей (т.е. Дао и Приложение ) зависят от (точно такой же версии) Core :
Parent project
|
|--> app
| `--> core
|
`--> dao
`--> core
Я определил App , Dao и Core в своих собственных каталогах проектов (, как описано здесь )
поэтому они могут быть возобновлены многими родительскими проектами.
Однако, когда я загружаю родительский проект, SBT выдает эту ошибку:
The same directory is used for output for multiple projects
Поэтому вместо этого я скопировал определения проектов App , Dao и Core в определение родительского проекта. То есть объявлены все проекты и их зависимости в одном файле сборки родительского проекта.
Теперь все отлично работает.
Однако , у меня много родительских проектов. Каждый родительский проект использует разные версии проекта App и проекта Dao . (DAO = объект доступа к данным - например, хранилище базы данных или файловое хранилище, варьируется от проекта к проекту.)
Поэтому мне нужно будет повторять определения App и Dao в каждом родительском проекте, чтобы избежать The same directory is used for output for multiple projects
ошибка. Но результатом будет много дублированного кода сборки проекта!
Как мне этого избежать?
У меня есть одна идея: возможно, я смогу создать модуль, например, для проект Dao , с trait
, который объявляет все зависимости Dao (в сторонних библиотеках). Тогда дублированного кода почти не будет, только зависимость от Dao от Core будет повторяться в каждом родительском проекте.
Что вы думаете?
Возможно, у вас есть другие идеи?