如何按顺序将sbt packageBin与多个模块一起使用

时间:2018-11-28 11:14:20

标签: sbt package

我有一个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 :(得分:0)

我只是通过添加一个名为pack的新模块,将所有子模块的文件打包到一个zip文件中。