我有一个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"
答案 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而不是捆绑的命令行。
Settings -> Build, Execution, Deployment -> Build Tools -> SBT
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如何标记语法错误,这可能会将有效代码标记为红色。这个特殊错误很快就会修复。