Ответ 1
Просто не включайте настройки сборки в подмодулях, которые этого не требуют.
Например, используя sbt 0.13.5 и sbt-assembly 0.11.2, здесь представлен многомодульный проект. Если вы запустите assembly
в корне, просто проект "app" будет превращен в жирную банку.
project/Build.scala
import sbt._
import Keys._
import sbtassembly.Plugin.assemblySettings
object MyApp extends Build {
lazy val root = Project("root", file(".")).aggregate(common, app)
lazy val common = Project("common", file("common"))
lazy val app = Project("app", file("app")).settings(assemblySettings: _*).dependsOn(common)
}
common/src/main/scala/com/example/common/Hello.scala
package com.example.common
object Hello {
def hello(name: String): String = s"Hello, $name"
}
app/src/main/scala/com/example/hello/App.scala
package com.example.hello
import com.example.common.Hello._
object Main extends App {
println(hello(args(0)))
}