3

我使用package任务(来自xsbt-web-plugin)将项目打包到战争中,并使用assembly任务(来自sbt-assembly)将项目打包到 jar 中。

我有一个多模块构建,一些模块被打包成战争,一些被打包成罐子。

我想设置构建以执行assembly任务并且:

  • Jar 模块打包成 jar 文件
  • 战争模块被打包成战争文件

如何在执行package任务的同时执行战争项目的assembly任务?

4

1 回答 1

1

package任务和任务都assembly评估为File类型,因此正如@James 评论的那样,您应该能够assembly在 webapp 项目中重新连接任务以运行package

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"
  )
于 2015-01-09T11:15:57.210 回答