【问题标题】:Sbt assembly for multiple targets多个目标的 Sbt 组装
【发布时间】:2019-03-31 05:47:47
【问题描述】:

我需要使用 sbt 程序集为多个版本的 scala 创建 fat jars。

当我针对单个版本时,我会写simple.sbt

scalaVersion := "2.11.12"

并且胖罐子输出到target/scala-2.11/Kernalytics-assembly-1.0.jar。现在我也想针对 Scala 2.12。我可以编辑 sbt 文件以更改 scalaVersion,但我希望在调用 sbt assembly 时,在一系列 Scala 版本上自动化组装过程。

如果我使用crossScalaVersions

name := "Kernalytics"

version := "1.0"

crossScalaVersions := Seq("2.11.12", "2.12.4")

libraryDependencies  ++= Seq(
  "org.scalanlp" %% "breeze" % "0.13.2",
  "org.scalanlp" %% "breeze-natives" % "0.13.2",
  "org.scalanlp" %% "breeze-viz" % "0.13.2"
)

libraryDependencies += "commons-io" % "commons-io" % "2.6"

resolvers += "Sonatype Releases" at "https://oss.sonatype.org/content/repositories/releases/"

libraryDependencies += "org.scalactic" %% "scalactic" % "3.0.4"
libraryDependencies += "org.scalatest" %% "scalatest" % "3.0.4" % "test"

唯一的输出是target/scala-2.12/Kernalytics-assembly-1.0.jar

【问题讨论】:

    标签: scala sbt


    【解决方案1】:

    如果你使用crossScalaVersions,如果你想为所有版本构建,我认为你需要在命令前加上'+'。

    来自Cross-Building a Project

    要针对 crossScalaVersions 中列出的所有版本进行构建,请在要运行的操作前加上 +

    【讨论】:

    • 请注意,在命令行中 + 必须与程序集连接,如 sbt +assembly
    猜你喜欢
    • 2018-11-15
    • 1970-01-01
    • 2016-09-08
    • 2013-03-23
    • 1970-01-01
    • 2021-12-06
    • 2014-10-05
    • 2015-04-03
    • 1970-01-01
    相关资源
    最近更新 更多