#scala #sbt
#scala #sbt
Вопрос:
У меня есть несколько проектов sbt в разных репозиториях с всегда одинаковой структурой проекта:
root
- api
- server
Из-за этого у меня большое дублирование (конфигурационного) кода между моими репозиториями.
Мой план состоит в том, чтобы написать плагин, который обеспечивает
class CommonBuild extends Build {}
который я затем могу использовать в своих репозиториях.
Проблема в том, что я не могу получить доступ к CommonBuild (который определен в плагине) в проектах, которые используют плагин.
Каков распространенный способ решения этой проблемы?
— ОБНОВИТЬ —
Похоже, это связано с тем, как я использую плагин.
Когда я делаю:
lazy val myPlugin = uri("/path/to/plugin")
lazy val root = project.in( file(".") ).dependsOn( myPlugin )
классы в плагине недоступны
но если сделать publishLocal
и просто использовать addSbtPlugin
, все будет в порядке.
Это специально или ошибка в sbt?
Комментарии:
1. На самом деле, куда вы помещаете вышеуказанную конфигурацию. это в
project/plugins.sbt
?2. да, в project/plugins.sbt
3. Хм, я знаю, что это работает (с Build.scala) для встроенного упаковщика sbt: github.com/sbt/sbt-native-packager/blob/master/test-project /…