Intellij 无法导入 SBT 项目

Intellij Fails to Import SBT project

我正在尝试将 sbt 项目导入 intellij 14,但是,这是我打开项目时得到的:

错误:导入 SBT 项目时出错: ...

at sbt.MainLoop$$anonfun$runWithNewLog.apply(MainLoop.scala:70)
    at sbt.MainLoop$$anonfun$runWithNewLog.apply(MainLoop.scala:65)
    at sbt.Using.apply(Using.scala:24)
    at sbt.MainLoop$.runWithNewLog(MainLoop.scala:65)
    at sbt.MainLoop$.runAndClearLast(MainLoop.scala:48)
    at sbt.MainLoop$.runLoggedLoop(MainLoop.scala:32)
    at sbt.MainLoop$.runLogged(MainLoop.scala:24)
    at sbt.StandardMain$.runManaged(Main.scala:53)
    at sbt.xMain.run(Main.scala:28)
    at xsbt.boot.Launch$$anonfun$run.apply(Launch.scala:109)
    at xsbt.boot.Launch$.withContextLoader(Launch.scala:129)
    at xsbt.boot.Launch$.run(Launch.scala:109)
    at xsbt.boot.Launch$$anonfun$apply.apply(Launch.scala:36)
    at xsbt.boot.Launch$.launch(Launch.scala:117)
    at xsbt.boot.Launch$.apply(Launch.scala:19)
    at xsbt.boot.Boot$.runImpl(Boot.scala:44)
    at xsbt.boot.Boot$.main(Boot.scala:20)
    at xsbt.boot.Boot.main(Boot.scala)
[error] java.io.FileNotFoundException: /home/karthik/Play2.4/Directory/target/.history 
(Permission denied)
[error] Use 'last' for the full log.

查看完整的登录信息/home/karthik/.IdeaIC14/system/log/sbt.last.log

这是我的 sbt.last.log 文件

Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=384M; support 
was removed in 8.0
[info] Loading project definition from /home/karthik/Play2.4/Rocket_Singh/project
[info] Set current project to Rocket_Singh 
(in build file:/home/karthik/Play2.4/Rocket_Singh/)
[Rocket_Singh] $ java.io.FileNotFoundException: 
/home/karthik/Play2.4/Rocket_Singh/target/.history (Permission denied)
    at java.io.FileOutputStream.open0(Native Method)
    at java.io.FileOutputStream.open(FileOutputStream.java:270)
    at java.io.FileOutputStream.<init>(FileOutputStream.java:213)
    at java.io.FileOutputStream.<init>(FileOutputStream.java:162)
    at jline.console.history.FileHistory.flush(FileHistory.java:87)
    at sbt.JLine.readLineWithHistory(LineReader.scala:28)
    at sbt.JLine.sbt$JLine$$unsynchronizedReadLine(LineReader.scala:19)
    at sbt.JLine$$anonfun$readLine.apply(LineReader.scala:16)
    at sbt.JLine$$anonfun$readLine.apply(LineReader.scala:16)
    at sbt.JLine$$anonfun$withJLine.apply(LineReader.scala:114)
    at sbt.JLine$$anonfun$withJLine.apply(LineReader.scala:112)
    at sbt.JLine$.withTerminal(LineReader.scala:86)
    at sbt.JLine$.withJLine(LineReader.scala:112)
    at sbt.JLine.readLine(LineReader.scala:16)
    at sbt.BasicCommands$$anonfun$shell.apply(BasicCommands.scala:164)
    at sbt.BasicCommands$$anonfun$shell.apply(BasicCommands.scala:160)
    at sbt.Command$$anonfun$command$$anonfun$apply.apply(Command.scala:29)
    at sbt.Command$$anonfun$command$$anonfun$apply.apply(Command.scala:29)
    at sbt.Command$.process(Command.scala:92)
    at sbt.MainLoop$$anonfun$$anonfun$apply.apply(MainLoop.scala:98)
    at sbt.MainLoop$$anonfun$$anonfun$apply.apply(MainLoop.scala:98)
    at sbt.State$$anon.process(State.scala:184)
    at sbt.MainLoop$$anonfun.apply(MainLoop.scala:98)
    at sbt.MainLoop$$anonfun.apply(MainLoop.scala:98)
    at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:17)
    at sbt.MainLoop$.next(MainLoop.scala:98)
    at sbt.MainLoop$.run(MainLoop.scala:91)
    at sbt.MainLoop$$anonfun$runWithNewLog.apply(MainLoop.scala:70)
    at sbt.MainLoop$$anonfun$runWithNewLog.apply(MainLoop.scala:65)
    at sbt.Using.apply(Using.scala:24)
    at sbt.MainLoop$.runWithNewLog(MainLoop.scala:65)
    at sbt.MainLoop$.runAndClearLast(MainLoop.scala:48)
    at sbt.MainLoop$.runLoggedLoop(MainLoop.scala:32)
    at sbt.MainLoop$.runLogged(MainLoop.scala:24)
    at sbt.StandardMain$.runManaged(Main.scala:53)
    at sbt.xMain.run(Main.scala:28)
    at xsbt.boot.Launch$$anonfun$run.apply(Launch.scala:109)
    at xsbt.boot.Launch$.withContextLoader(Launch.scala:129)
    at xsbt.boot.Launch$.run(Launch.scala:109)
    at xsbt.boot.Launch$$anonfun$apply.apply(Launch.scala:36)
    at xsbt.boot.Launch$.launch(Launch.scala:117)
    at xsbt.boot.Launch$.apply(Launch.scala:19)
    at xsbt.boot.Boot$.runImpl(Boot.scala:44)
    at xsbt.boot.Boot$.main(Boot.scala:20)
    at xsbt.boot.Boot.main(Boot.scala)
[error] java.io.FileNotFoundException: 
/home/karthik/Play2.4/Rocket_Singh/target/.history (Permission denied)
[error] Use 'last' for the full log.
/home/karthik/Play2.4/Directory/target/.history (Permission denied)
/home/karthik/Play2.4/Rocket_Singh/target/.history (Permission denied)

这些消息表明您没有访问这些路径的权限。检查用户 运行 intellij 是否对 .history 具有写入权限。在 Linux 中,您可以通过 :

cd /home/karthik/Play2.4/Directory/target/
ls -l

如果 .history 是一个文件,响应将类似于

-rw-rw-r-- 1 karthik karthik  961 Aug 30 18:26 .history

其中rw表示读写,2个名字分别是用户名和组名

我也遇到了同样的问题,正如 Manos Nikolaidis 所说,问题出在文件权限上。 为了快速解决这个问题,我尝试了运行root用户权限的想法,我能够正常导入项目。

我以前执行的命令在这里(来自 idea root/bin 目录):

sudo ./idea.sh