【问题标题】:How to "package" some modules to jars and others to wars in multi-module build with single task?如何在单个任务的多模块构建中将一些模块“打包”到 jars 和其他模块到战争?
【发布时间】:2015-02-22 06:45:52
【问题描述】:

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

我有一个多模块构建,一些模块被打包到战争中,一些被打包到 jars 中。

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

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

如何在执行assembly任务的同时为war项目执行package任务?

【问题讨论】:

标签: sbt sbt-assembly xsbt-web-plugin


【解决方案1】:

package 任务和assembly 任务都评估为File 类型,因此正如@James 评论的那样,您应该能够在webapp 项目中重新连接assembly 任务以运行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-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-06
    • 2012-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多