Intellij sbt sbt-native-packager和enablePlugins错误

时间:2015-07-22 01:54:28

标签: scala intellij-idea sbt

我有一个sbt构建,当我从命令行运行时,但是Intellij不喜欢。我的Intellij在Linux上运行,它的版本是14.1.4,我的scala插件是1.5.2。

Intellij抱怨我使用了enablePlugins(JavaAppPackaging)。错误是“表达式类型(DslEntry)必须符合SBT文件中的设置[_]”。

我的project / build.properties文件:

sbt.version=0.13.8

我的项目/ plugins.sbt

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

我的build.sbt的前几行

enablePlugins(JavaAppPackaging)

organization := "org.bodhi"

name := "jar-patch"

version := "1.0"

4 个答案:

答案 0 :(得分:3)

@lifeGoGoGo在另一个帖子Intellij IDEA and SBT syntax error上的答案适用于我(在Ubuntu上,在全局设置和IntelliJ IDEA的项目设置中设置自定义sbt-launcher.jar - 由@Mustafa在此主题上明智地回答 - 还不够,但是加上“懒惰的”战术就足够了。例如,这在build.sbt中对我有用(显然你改变你的插件细节以适应你正在做的事情,因为这个问题是由IntelliJ而不是你想要启用的特定插件引起的):

lazy val root = (project in file(".")).
  enablePlugins(ScalaJSPlugin).
  settings(
    name := "Scala.js Tutorial",
    scalaVersion := "2.11.7",
    version := "1.0"
  )

答案 1 :(得分:1)

IntelliJ使用捆绑的SBT启动程序,它可能与您在命令行中运行的版本不同。

由于您已经知道命令行SBT有效,因此您可以指向IntelliJ以使用命令行SBT而不是捆绑的命令行。

  1. 转到Settings -> Build, Execution, Deployment -> Build Tools -> SBT
  2. 的SBT设置页面
  3. 在启动器部分中,选择Custom并指向操作系统中安装的SBT启动器。在Ubuntu中,默认位置为/usr/share/sbt-launcher-packaging/bin/sbt-launcher.jar

答案 2 :(得分:0)

@karol:我遇到了同样的问题。我在打开项目/usr/share/sbt-launcher-packaging/bin/sbt-launcher.jar时再次选择解决了 "从SBT进口项目" - >全球SBT设置。

答案 3 :(得分:0)

问题是由于IntelliJ IDEA如何标记语法错误,这可能会将有效代码标记为红色。这个特殊错误很快就会修复。