我有一个包含3个子项目和sbt配置文件的根项目,没有别的。 2个主要子项目称为server
和backend
,另一个称为common
,并且是两个主要项目的依赖关系。 server
是PlayFramework项目。 backed
项目配置为生成程序集jar到server
的资源目录。
正确生成jar并且服务器能够看到它,但是当编译assembly
时我不知道如何从backend
运行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
答案 0 :(得分:2)
感谢@pfn的评论,我得到了它的工作。我需要做的一件事是在服务器子项目设置中插入此行并将server
更改为Compile
,现在就是:
(compile in Compile) <<= (compile in Compile) dependsOn (assembly in backend)