Как использовать sbt packageBin с несколькими модулями по порядку - PullRequest
0 голосов
/ 28 ноября 2018

У меня есть проект sbt с несколькими подмодулями, которые выглядят так:

--\ root  
  -- module 1  
  -- module 2  

Используя packageBin, я могу получить два zip-файла: module1.zip и module2.zip .

Это мой build.sbt:

import Dependencies._
import NativePackagerHelper._


lazy val commonSettings = Seq(
  organization := "com.zhyea.sbt",
  version := "0.1-SNAPSHOT",
  scalaVersion := "2.11.12",
  exportJars := true,
  artifactName := {
    (sv: ScalaVersion, module: ModuleID, artifact: Artifact) => artifact.name + "." + artifact.extension
  }
)


lazy val module2 = project.settings(commonSettings).settings()
  .enablePlugins(JavaAppPackaging, UniversalPlugin)
  .settings(libraryDependencies ++= module2Dependencies)


lazy val module1 = project.settings(commonSettings)
  .enablePlugins(JavaAppPackaging, UniversalPlugin)
  .settings(libraryDependencies ++= module1Dependencies)


lazy val root = project.in(file("."))
  .settings(commonSettings)
  .aggregate(module2, module1)
  .enablePlugins(JavaAppPackaging, UniversalPlugin)
  .dependsOn(module2, module1).configs()

mappings in Universal ++= directory("module2/target/universal")

Отображения в каталоге Universal ++ = ("module1 / target / universal")

Теперь я хочу выполнить задачу packageBin в корневом каталоге и добавить zip-модули подмодулей в root.zip.

Проблема заключается в том, что когда корневой модуль выполняет задачу packageBin, задачи packageBin подмодулей еще не завершены, и корень не может получить module1.zip и mudule2.zip.

Как я могу сказать sbt, что нужно выполнить задачу packageBin по порядку?

1 Ответ

0 голосов
/ 30 ноября 2018

Я просто упаковываю файлы всех подмодулей в один zip, добавив новый модуль с именем pack.

...