scala - 多个目标的 Sbt 程序集

标签 scala sbt

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

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

scalaVersion := "2.11.12"

并且 fat jar 输出到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

最佳答案

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

来自 Cross-Building a Project :

To build against all versions listed in crossScalaVersions, prefix the action to run with +

关于scala - 多个目标的 Sbt 程序集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53009188/

相关文章:

Scala:读取并保存 Iterable 的所有元素

scala - SBT 警告可能不兼容的 Scala 版本不会出现在依赖关系图中

sbt - 如何声明 zip 依赖并了解其在文件系统中的路径?

scala - 在 sbt 运行任务中重定向标准输入/标准输出

scala - 为什么 Numeric 对待一元和二进制的方式不同?

scala - 特征中的抽象字段(Scala)-构造顺序

java - 如何获取 aerospike 给定集的所有 bin 名称

scala - 将 Scala 代码部署到 Spark 时 ClassNotFoundException anonfun

scala - SBT:具有可在 build.sbt 中访问的值的外部配置文件

sbt - 在 sbt 中下载源 jars?