【发布时间】: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 出了什么问题。