从其他子项目触发SBT程序集
问题描述:
我有一个根项目包含3个子项目加上sbt配置文件,没有别的。 2个主要子项目被称为server
和backend
,另一个被称为common
并且是两个主要项目的相关性。 server
是PlayFramework项目。 backed
项目被配置为生成汇编jar到资源目录server
。从其他子项目触发SBT程序集
正确生成罐子和服务器能够看到它,但我不知道怎么办好,从backend
assembly
任务时server
编译(即我希望服务器取决于backend.jar组装)
/* [...] */
lazy val commonSettings = Seq(
version := "0.1",
organization := "org.example",
scalaVersion := "2.11.7"
)
lazy val server = (project in file("server")).enablePlugins(PlayJava).settings(commonSettings: _*).settings(
name := """example""",
libraryDependencies ++= Seq(
/* [...] */
),
/* [...] */
unmanagedResourceDirectories in Compile += { baseDirectory.value/"resources" }
).dependsOn(common)
lazy val backend = (project in file("backend")).settings(commonSettings: _*).settings(
assemblyJarName in assembly := "backend.jar",
assemblyOutputPath in assembly := server.base/"resources/backend.jar",
libraryDependencies := Seq(
)
).dependsOn(common)
lazy val common = (project in file("common")).settings(commonSettings: _*)
onLoad in Global := (Command.process("project server", _: State)) compose (onLoad in Global).value
答
感谢@pfn我得到它的工作作出评论。有一件事我需要做的是插入服务器子项目设置这一行,改变server
到Compile
,所以它现在是:
(compile in Compile) <<= (compile in Compile) dependsOn (assembly in backend)
编译服务器 pfn