【问题标题】:How to activate the sbt DockerPlugin in scala?如何在 scala 中激活 sbt DockerPlugin?
【发布时间】:2017-12-04 23:02:44
【问题描述】:

我有两个 scala 项目,一个已经定义为通过 sbt docker 插件构建它的 docker 容器。另一个我也想 dockerify。

工作的人在其build.sbt 中有以下与 docker 配置相关的行:

organization := "com.namespace"
name := "dockerized-app"
version := sys.env.getOrElse("PIPELINE_VERSION", "0.1.0_local")
scalaVersion := "2.12.4"
enablePlugins(JavaAppPackaging)
enablePlugins(DockerPlugin)
packageName in Docker := packageName.value
dockerRepository := Some("our-docker.io:5001")
dockerExposedPorts := Seq(8080)

我认为我可以将相关行复制粘贴到新项目中,更改名称并使其工作。

然而,当我将这一行添加到即将被 dockerified 的 scala 项目中时:

enablePlugins(DockerPlugin)

我得到错误:

 Cannot resolve symbol DockerPlugin

我查看了现有项目libraryDependencies,但似乎没有这样配置。在预配置的项目中,IntellJ 不知何故知道插件,我可以跟踪到DockerPlugin 来自com.typesafe.sbt.packager.docker。这让我假设 sbt 默认附带它。

但显然我必须以某种方式激活它。

深入挖掘,我还尝试将其添加到我的plugins.sbt,但无济于事:

addSbtPlugin("com.typesafe.sbt" % "sbt-native-packager" % "1.3.2")

如何在scala中使用sbt激活DockerPlugin

【问题讨论】:

  • 您是否检查过 addSbtPlugin("com.typesafe.sbt" % "sbt-native-packager" % "1.3.2") 是否在您的 project/plugins.sbt 文件中?
  • @P3trur0 我就是这样做的,然后运行sbt update -- 但它似乎仍然找不到它。
  • 那对我来说似乎很好。你在使用intelliJ的建筑吗?您是否尝试刷新项目本身或直接从命令提示符运行 sbt?
  • @P3trur0 您可以发布 addSbtPlugin 行作为我投票和接受的答案。有一些奇怪的解决问题,但是在重置项目后,重新启动 intellij,然后先添加插件,然后将更改添加到 build.sbt,它现在可以正常工作。不知道 intellij 出了什么问题。

标签: scala docker sbt


【解决方案1】:

为了使其正常工作,您需要添加以下行:

addSbtPlugin("com.typesafe.sbt" % "sbt-native-packager" % "1.3.2")

在您的 project/plugins.sbt 文件中。

然后刷新您的项目,它应该可以工作了。

更多信息,请查看Sbt Native Packager documentation

【讨论】:

    猜你喜欢
    • 2014-09-25
    • 2021-01-21
    • 2018-05-18
    • 2014-11-09
    • 2014-10-08
    • 1970-01-01
    • 2014-12-08
    • 2016-02-24
    • 2018-06-10
    相关资源
    最近更新 更多