Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Intellij sbt sbt-native-packager and enablePlugins error

I have an sbt build that works when I run from the command line, but that Intellij does not like. My Intellij is running on Linux, its version is 14.1.4, my scala plugin is 1.5.2.

Intellij complains about my use of enablePlugins(JavaAppPackaging). The error is "Expression Type (DslEntry) must conform to Setting[_] in SBT file".

My project/build.properties file:

sbt.version=0.13.8

My project/plugins.sbt

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

And the first few lines of my build.sbt

enablePlugins(JavaAppPackaging)

organization := "org.bodhi"

name := "jar-patch"

version := "1.0"
like image 683
Christopher Helck Avatar asked Jul 22 '15 01:07

Christopher Helck


2 Answers

The answer by @lifeGoGoGo on another thread Intellij IDEA and SBT syntax error works for me (on Ubuntu, setting the custom sbt-launcher.jar in global settings and project settings of IntelliJ IDEA - as sensibly answered by @Mustafa on this thread - wasn't enough, but then adding the "lazy val" tactic was enough). So for example, this worked for me in build.sbt (obviously you change your plugin-details to suit what you are doing, as this issue is caused by IntelliJ and not by the specific plugin you want to enable):

lazy val root = (project in file(".")).
  enablePlugins(ScalaJSPlugin).
  settings(
    name := "Scala.js Tutorial",
    scalaVersion := "2.11.7",
    version := "1.0"
  )
like image 55
murmelssonic Avatar answered Nov 06 '22 07:11

murmelssonic


IntelliJ uses a bundled SBT launcher which might be a different version than what you are running in the command line.

Since you already know that command line SBT works, you may point IntelliJ to use the command line SBT instead of the bundled one.

  1. Go to settings page for SBT at Settings -> Build, Execution, Deployment -> Build Tools -> SBT.
  2. In the launcher section, choose Custom and point to the SBT launcher installed in the OS. In Ubuntu, the default location is /usr/share/sbt-launcher-packaging/bin/sbt-launcher.jar
like image 22
Mustafa Avatar answered Nov 06 '22 07:11

Mustafa