使用 sbt native packager 的环境特定发行版

     2023-03-24     233

关键词:

【中文标题】使用 sbt native packager 的环境特定发行版【英文标题】:Environment-specific distributions using sbt native packager 【发布时间】:2013-12-30 12:43:42 【问题描述】:

我正在尝试使用 Play (2.2) 中提供的 sbt 本机打包程序功能创建/配置特定于环境的发行版(用于开发、质量和生产)。我尝试使用 build.sbt 文件中的以下设置来实现这一点:

val dev  = config("dev")  extend(Universal)
val qual = config("qual") extend(Universal)
val prod = config("prod") extend(Universal)


def distSettings: Seq[Setting[_]] =
  inConfig(dev)(Seq(
    mappings in Universal <+= (resourceDirectory in Compile) map  dir =>
     println("dev")
     (dir / "start.bat.dev") -> "bin/start.bat"
     // additional mappings
   
  )) ++
  inConfig(qual)(Seq(
    mappings in Universal <+= (resourceDirectory in Compile) map  dir =>
      println("qual")
      (dir / "start.bat.qual") -> "bin/start.bat"
      // additional mappings
    
  )) ++
  inConfig(prod)(Seq(
    mappings in Universal <+= (resourceDirectory in Compile) map  dir =>
      println("prod")
      (dir / "start.bat.prod") -> "bin/start.bat"
      // additional mappings
    
  ))


play.Project.playScalaSettings ++ distSettings

在 SBT 控制台中,当我输入“dev:dist”时,我希望只看到“dev”作为输出,并且相应地只看到要使用的相应映射。相反,看起来所有配置中的所有映射都已合并。很可能我不明白配置应该如何在 SBT 中工作。此外,可能有更好的方法可以实现我正在寻找的东西。

【问题讨论】:

注意:这个问题已经发布在groups.google.com/forum/#!topic/play-framework/gdTv_hPxBq0,但我认为 SO 可能更适合这种情况。 【参考方案1】:

inConfig(c)( settings ) 表示在settings 中没有明确指定时使用c 作为配置。在示例中,mappings 的配置被指定为Universal,因此所有映射都添加到Universal 配置中,而不是更具体的配置。

改为:

inConfig(prod)(Seq(
  mappings <+= ...
))

即去掉in Universal部分。

注意:因为像prod 这样更具体的配置扩展了Universal,它们包括来自Universal 的映射。

【讨论】:

好的,我明白了。但是,如果我这样做,我现在会收到一条错误消息:“对未定义设置的引用:/prod:mappings from /prod:mappings”(对于 dev:mappings 和 qual:mappings 也是如此)。

使用 sbt-native-packager 时的模糊参考

】使用sbt-native-packager时的模糊参考【英文标题】:Ambiguousreferencewhenusingsbt-native-packager【发布时间】:2015-02-1612:00:02【问题描述】:我正在尝试使用sbt-native-packager创建一个deb文件。当我运行sbt时,它会在加载build.sbt时抱怨引用不... 查看详情

使用 sbt-native-packager 为我的 sbt 项目获取 docker 支持时出错

】使用sbt-native-packager为我的sbt项目获取docker支持时出错【英文标题】:Errorwhileusingsbt-native-packagertogetthedockersupportformysbtproject【发布时间】:2019-10-1523:30:58【问题描述】:我在我的plugins.sbt文件中添加了sbt-native-packager,版本1.3.15... 查看详情

如何使用 sbt-native-packager 设置 Docker Registry

】如何使用sbt-native-packager设置DockerRegistry【英文标题】:HowtosettheDockerRegistrywithsbt-native-packager【发布时间】:2020-11-0721:09:13【问题描述】:我正在尝试使用sbt-native-packager和以下build.sbt构建Docker映像(尝试将映像发布到本地存储... 查看详情

如何使用 sbt-native-packager 更改通用 zip 文件名

】如何使用sbt-native-packager更改通用zip文件名【英文标题】:HowdoIchangeuniversalzipfilenameusingsbt-native-packager【发布时间】:2014-09-1323:40:18【问题描述】:我正在使用:scala2.10.3sbt13.2带插件:addSbtPlugin("com.typesafe.sbt"%"sbt-native-packager"%"0.... 查看详情

如何使用 sbt-native-packager 创建基本项目设置

】如何使用sbt-native-packager创建基本项目设置【英文标题】:Howtocreateabasicprojectsetupusingsbt-native-packager【发布时间】:2013-09-1516:38:32【问题描述】:我有一个使用SBT的项目设置,以创建子项目工件。我一直在寻找一种方法来创建一... 查看详情

将 sbt-aether-deploy 与 sbt-native-packager 一起使用

】将sbt-aether-deploy与sbt-native-packager一起使用【英文标题】:Usingsbt-aether-deploywithsbt-native-packager【发布时间】:2014-06-0213:04:16【问题描述】:是否有人使用sbt-aether-deploy将sbt-native-packager生成的工件(在我的情况下为tgz)发布到nexus... 查看详情

使用 sbt-native-packager 时的配置目录

】使用sbt-native-packager时的配置目录【英文标题】:configdirectorywhenusingsbt-native-packager【发布时间】:2014-01-2716:48:56【问题描述】:我想问一下这个事实背后的原因,即sbt-native-packager插件创建了一个符号链接/etc/->/usr/share//conf(... 查看详情

如何使用 sbt-native-packager 设置 docker 镜像名称

】如何使用sbt-native-packager设置docker镜像名称【英文标题】:Howtosetdockerimagenameusingsbt-native-packager【发布时间】:2017-10-0317:33:01【问题描述】:我正在开发Lagom框架中的多模块项目,并使用SBT构建它。我成功地配置了我的项目以使... 查看详情

使用 sbt-native-packager 构建 docker 包时重复映射

】使用sbt-native-packager构建docker包时重复映射【英文标题】:Duplicatemappingswhenbuildingdockerpackageusingsbt-native-packager【发布时间】:2015-12-2200:45:25【问题描述】:我正在使用sbt-native-packager在Scala中构建我们基于AkkaHTTP的应用程序的docker... 查看详情

使用 sbt-native-packager 通过 JavaServerAppPackaging 检测 prometheus 导出器

】使用sbt-native-packager通过JavaServerAppPackaging检测prometheus导出器【英文标题】:Usingsbt-native-packagertoinstrumentprometheusexporterviaJavaServerAppPackaging【发布时间】:2020-04-0523:19:47【问题描述】:我正在尝试使用sbt-native-packager来检测带有prom... 查看详情

SBT 使用 sbt-native-packager 如何创建不同的构建文件?

】SBT使用sbt-native-packager如何创建不同的构建文件?【英文标题】:SBTusingsbt-native-packagerhowtocreatedifferentbuildfiles?【发布时间】:2015-09-0112:13:34【问题描述】:我有一个Play2.3应用程序,按照docs我可以构建一个debian包,当我想构建... 查看详情

使用 sbt-native-packager 的 docker 支持添加/复制文件

】使用sbt-native-packager的docker支持添加/复制文件【英文标题】:ADD/COPYfileswithsbt-native-packager\'sdockersupport【发布时间】:2015-04-2421:47:18【问题描述】:我正在使用sbt-native-packager1.0.0-M5来创建我的docker映像。我需要添加一个不是源文... 查看详情

在“sbt-native-packager”脚本中使用除“sbt run”之外的其他 sbt 命令。例如:“sbt flywayMigrate”

】在“sbt-native-packager”脚本中使用除“sbtrun”之外的其他sbt命令。例如:“sbtflywayMigrate”【英文标题】:Useothersbtcommandsthan"sbtrun"inthe"sbt-native-packager"script.Forexample:"sbtflywayMigrate"【发布时间】:2016-09-0908:5 查看详情

如何使用 sbt-native-packager 创建 Upstart Zip 包?

】如何使用sbt-native-packager创建UpstartZip包?【英文标题】:HowcanIcreateanUpstartZippackageusingsbt-native-packager?【发布时间】:2019-02-2700:29:36【问题描述】:我无法生成新贵zip包。我已将以下内容添加到我的sbt项目中...enablePlugins(UpstartPlug... 查看详情

如何在多个项目中使用 sbt-native-packager

】如何在多个项目中使用sbt-native-packager【英文标题】:HowdoIusethesbt-native-packagerwithmultipleprojects【发布时间】:2016-10-2109:10:42【问题描述】:我正在将几个大型scala项目合并为一个。目前他们使用剪切和粘贴(不是很多代码)共享... 查看详情

扩展 sbt-native-packager (Docker)

...描述】:我遇到了sbt-native-packager的Docker模块的问题。它使用一个(可覆盖的)bash模板,但是这个模板有$template_declares将一些重要的项目信息替换到bash文件中。我的问题是我不能使用bash— 查看详情

使用 sbt-native-packager 时将 tgz 重命名为 tar.gz

】使用sbt-native-packager时将tgz重命名为tar.gz【英文标题】:Renametgztotar.gzwhileusingsbt-native-packager【发布时间】:2018-12-2806:44:00【问题描述】:我使用sbt-native-packager构建了一个扩展名为.tgz的压缩tar文件。然后我使用添加该工件artifact... 查看详情

sbt-native-packager RPM 问题

...rRPMissue【发布时间】:2017-01-0112:05:24【问题描述】:我们使用sbt来构建基于Play框架的后端。目前我们使用sbtdist并运行构建二进制文件。我正在将其构建为RPM包,在此过程中会出现一些错误。我找到了这个repo-https://github.com/muuki88... 查看详情