【问题标题】:Intellij sbt sbt-native-packager and enablePlugins errorIntellij sbt sbt-native-packager 和 enablePlugins 错误
【发布时间】:2015-10-11 16:58:13
【问题描述】:

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

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

我的项目/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"

【问题讨论】:

    标签: scala intellij-idea sbt


    【解决方案1】:

    @lifeGoGoGo 在另一个线程 Intellij IDEA and SBT syntax error 上的答案对我有用(在 Ubuntu 上,在 IntelliJ IDEA 的全局设置和项目设置中设置自定义 sbt-launcher.jar - 正如 @Mustafa 在此线程上明智地回答的那样 - 是'还不够,但随后添加“lazy val”策略就足够了)。因此,例如,这在 build.sbt 中对我有用(显然您更改了插件详细信息以适应您正在做的事情,因为这个问题是由 IntelliJ 引起的,而不是由您要启用的特定插件引起的):

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

    【讨论】:

      【解决方案2】:

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

      既然您已经知道命令行 SBT 可以工作,您可以让 IntelliJ 使用命令行 SBT 而不是捆绑的。

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

      【讨论】:

      • 谢谢。我这样做了,Intellij 仍然抱怨。在 GUI 中,“enablePlugins()”下方有一条红色波浪线,并具有相同的相关错误消息。据我所知,当我要求 Intellig 构建和运行程序时,它工作正常。只是 GUI 有这个烦人的消息。
      • @Mustafa :谢谢这解决了我的问题。仅供其他人参考,我首先在全局设置中设置它但它不起作用,然后在项目打开时我扩展了“全局 SBT 设置”选项,发现它仍然设置为“捆绑”,所以我在那里设置为自定义与“/usr/local/Cellar/sbt/0.13.8/libexec/sbt-launch.jar”配合得很好,它终于奏效了。
      • 我也有同样的问题。无论在 IntelliJ 设置中设置自定义 sbt-launch.jar 文件,仍然会出现错误。从 CLI 运行 comman 可以正常工作,但 IntelliJ 无法构建项目。我正在使用 SBT 0.13.8 和 IntelliJ Ultimate 14.1.4
      • @marcin_koss,试试 brew list sbt,它应该告诉你包含 jar 的 libexec 目录的路径
      • 我遇到了同样的问题,尽管现在使用的是 IntelliJ 15 并且捆绑了 0.13.8 SBT。试图指向我从 CLI 使用的自定义 sbt 0.13.9,但问题仍然存在。
      【解决方案3】:

      @karol:我遇到了同样的问题。我通过在打开项目 /usr/share/sbt-launcher-packaging/bin/sbt-launcher.jar 时再次选择来解决 “从 SBT 导入项目”-> 全局 SBT 设置。

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          猜你喜欢
          • 2016-08-17
          • 2016-12-14
          • 2016-07-27
          • 2015-10-03
          • 2017-03-21
          • 2014-06-02
          • 2015-12-30
          • 2015-03-31
          • 2016-10-24
          相关资源
          最近更新 更多