Scala - SBT - sbt-native-packager - 保留 `stage` 目录的内容

Posted

技术标签:

【中文标题】Scala - SBT - sbt-native-packager - 保留 `stage` 目录的内容【英文标题】:Scala - SBT - sbt-native-packager - Keep contents of the `stage` directory 【发布时间】:2016-10-24 18:41:51 【问题描述】:

这是我之前提出(回答)的问题的后续:Scala SBT - sbt-native-packager, how to specify custom stage directory

当我更改 stagingDirectory in Universal 属性(例如 stage-v1)并暂存项目时 - 它按预期工作。我可以在target/universal/stage-v1 看到我的项目。

然后我指定不同的暂存目录(stage-v2)并暂存它。首先发生的是它会删除stage-v1 文件夹的内容,然后将其暂存到stage-v2

如何在不同的暂存目录中保留不同的阶段构建?

从这个角度来看,我有一个构建时间依赖性。它是一个计算库的后端,可以是 CPU 或 GPU。我对它们有不同的用例,所以我想随时保留 2 个版本。

谢谢,

安东

【问题讨论】:

【参考方案1】:

构建相同应用程序但配置不同的推荐方法是使用 sbt 子模块。这看起来像这样:

lazy val application = project
lazy val cpuApplication = project.settings(...).dependsOn(application)
lazy val gpuApplication = project.settings(...).dependsOn(application)

这样做的好处是,您可以非常轻松地配置所有内容。您还可以将所有内容都称为非常明确的,例如gpuApplication:stage 暂存 gpu 应用程序。缺点是您的build.sbt 会增长。

【讨论】:

以上是关于Scala - SBT - sbt-native-packager - 保留 `stage` 目录的内容的主要内容,如果未能解决你的问题,请参考以下文章

SBT 项目刷新失败 [IntelliJ、Scala、SBT]

使用 sbt 构建 scala 项目时,scala 的版本有啥关系?

使用SBT构建Scala应用转载

sbt 不能正常工作 - 找不到模块:org.scala-sbt

IntelliJ 14 - 创建/导入 Scala / SBT 项目

如何更改 sbt 项目的 Scala 版本?