I use package task (from xsbt-web-plugin) to package a project to a war, and assembly task (from sbt-assembly) to package the project to a jar.
I have a multi-module build and some modules are packaged into wars and some into jars.
I'd like to set up the build to execute assembly task and:
- Jar modules are packaged into jar files
- War modules are packaged into war files
How to execute package task for the war projects while executing assembly task?
Both package task and assembly task evaluate to File type, so as @James commented you should be able to rewire assembly task in webapp project to run package instead.
lazy val commonSettings = Seq(
scalaVersion := "2.11.4"
)
lazy val webappAssembly = Seq(
assembly := packageWar.value
)
lazy val root = (project in file(".")).
aggregate(app, webapp).
settings(commonSettings: _*)
lazy val app = (project in file("app")).
settings(commonSettings: _*)
lazy val webapp = (project in file("webapp")).
settings(commonSettings ++ jetty() ++ webappAssembly: _*).
settings(
libraryDependencies += "javax.servlet" % "javax.servlet-api" % "3.0.1" % "provided"
)
来源:https://stackoverflow.com/questions/27631989/how-to-package-some-modules-to-jars-and-others-to-wars-in-multi-module-build-w