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 不能正常工作 - 找不到模块:org.scala-sbt