Опубликовать проект SBT с подпроектами в качестве одного артефакта Maven - PullRequest
0 голосов
/ 04 февраля 2019

У меня есть проект SBT для библиотеки Scala.Реализация распространяется на несколько подпроектов SBT, но я хотел бы опубликовать библиотеку в виде одного JAR.Я построил следующий пример:

val subProject = project

val myLibrary = project
  .in(file("."))
  .dependsOn(subProject)

Проект myLibrary это основной проект, который зависит от всех других подпроектов.Если я запускаю sbt myLibrary/package, я получаю JAR-файлы только с файлами классов, исходниками и предоставленной документацией об источниках в проекте myLibrary.Я нашел следующий обходной путь для включения файлов из других подпроектов, добавив настройки, подобные следующим, к myLibrary:

val myLibrary = project
  .in(file("."))
  .dependsOn(subProject)
  .settings(
    Compile / packageBin / mappings ++= (subProject / Compile / packageBin / mappings).value,
    Compile / packageSrc / mappings ++= (subProject / Compile / packageSrc / mappings).value,
    Compile / packageDoc / mappings ++= (subProject / Compile / packageDoc / mappings).value)

Каков предполагаемый способ получения того же результата?

1 Ответ

0 голосов
/ 11 февраля 2019

Вы можете взглянуть на плагин sbt-assembly , который создает толстую флягу (включая все зависимости) вашего проекта.

...