【问题标题】:Importing existing sbt project to IntelliJ将现有的 sbt 项目导入 IntelliJ
【发布时间】:2018-07-12 16:43:39
【问题描述】:

我有一个正在使用 intellJ 进行的项目。不久前我删除了项目;现在我想再次从事这个项目。但是,克隆项目后,我无法将项目导入 Intellj 2017.2.6。我还安装了最新的 Scala 插件。

这是日志:

[info] Loading settings from plugins.sbt,scaffold.sbt ...
[info] Loading project definition from C:\Users\Lisa\repositories\Centuries\project
[info] Loading settings from build.sbt ...
[info] Set current project to play-java-starter-example (in build file:/C:/Users/Lisa/repositories/Centuries/)
[info] sbt server started at local:sbt-server-32d2c5673d7428dec3ce
[play-java-starter-example] $
[info] Defining Global / sbtStructureOptions, Global / sbtStructureOutputFile, shellPrompt
[info] The new values will be used by no settings or tasks.
[info] Reapplying settings...
[info] Set current project to play-java-starter-example (in build file:/C:/Users/Lisa/repositories/Centuries/)
[info] Applying State transformations org.jetbrains.sbt.CreateTasks from C:/Users/Lisa/.IntelliJIdea2017.2/config/plugins/Scala/launcher/sbt-structure-1.1.jar
[error] java.lang.ClassNotFoundException: org.jetbrains.sbt.CreateTasks$
[error]     at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
[error]     at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
[error]     at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
[error]     at java.lang.Class.forName0(Native Method)
[error]     at java.lang.Class.forName(Class.java:348)
[error]     at sbt.internal.inc.ModuleUtilities$.getObject(ModuleUtilities.scala:20)
[error]     at sbt.BasicCommands$.$anonfun$call$5(BasicCommands.scala:203)
[error]     at scala.collection.TraversableLike.$anonfun$map$1(TraversableLike.scala:234)
[error]     at scala.collection.immutable.List.foreach(List.scala:389)
[error]     at scala.collection.TraversableLike.map(TraversableLike.scala:234)
[error]     at scala.collection.TraversableLike.map$(TraversableLike.scala:227)
[error]     at scala.collection.immutable.List.map(List.scala:295)
[error]     at sbt.BasicCommands$.$anonfun$call$2(BasicCommands.scala:203)
[error]     at sbt.Command$.$anonfun$applyEffect$4(Command.scala:134)
[error]     at sbt.Command$.$anonfun$applyEffect$2(Command.scala:130)
[error]     at sbt.MainLoop$.processCommand(MainLoop.scala:153)
[error]     at sbt.MainLoop$.$anonfun$next$2(MainLoop.scala:136)
[error]     at sbt.State$$anon$1.runCmd$1(State.scala:242)
[error]     at sbt.State$$anon$1.process(State.scala:248)
[error]     at sbt.MainLoop$.$anonfun$next$1(MainLoop.scala:136)
[error]     at sbt.internal.util.ErrorHandling$.wideConvert(ErrorHandling.scala:16)
[error]     at sbt.MainLoop$.next(MainLoop.scala:136)
[error]     at sbt.MainLoop$.run(MainLoop.scala:129)
[error]     at sbt.MainLoop$.$anonfun$runWithNewLog$1(MainLoop.scala:107)
[error]     at sbt.io.Using.apply(Using.scala:22)
[error]     at sbt.MainLoop$.runWithNewLog(MainLoop.scala:101)
[error]     at sbt.MainLoop$.runAndClearLast(MainLoop.scala:57)
[error]     at sbt.MainLoop$.runLoggedLoop(MainLoop.scala:42)
[error]     at sbt.MainLoop$.runLogged(MainLoop.scala:34)
[error]     at sbt.StandardMain$.runManaged(Main.scala:113)
[error]     at sbt.xMain.run(Main.scala:76)
[error]     at xsbt.boot.Launch$$anonfun$run$1.apply(Launch.scala:109)
[error]     at xsbt.boot.Launch$.withContextLoader(Launch.scala:128)
[error]     at xsbt.boot.Launch$.run(Launch.scala:109)
[error]     at xsbt.boot.Launch$$anonfun$apply$1.apply(Launch.scala:35)
[error]     at xsbt.boot.Launch$.launch(Launch.scala:117)
[error]     at xsbt.boot.Launch$.apply(Launch.scala:18)
[error]     at xsbt.boot.Boot$.runImpl(Boot.scala:41)
[error]     at xsbt.boot.Boot$.main(Boot.scala:17)
[error]     at xsbt.boot.Boot.main(Boot.scala)
[error] java.lang.ClassNotFoundException: org.jetbrains.sbt.CreateTasks$
[error] Use 'last' for the full log.
[info] shutting down server
[INFO] [02/02/2018 08:48:16.063] [Thread-3] [CoordinatedShutdown(akka://sbt-web)] Starting coordinated shutdown from JVM shutdown hook
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=384M; support was removed in 8.0

【问题讨论】:

    标签: scala intellij-idea playframework sbt


    【解决方案1】:

    您的项目正在使用 sbt 1.1,并且有一个错误会阻止在 IntelliJ 2017.2 中导入。升级到 IntelliJ/Scala 2017.3.11 或更高版本应该可以解决它。

    【讨论】:

      【解决方案2】:

      执行以下步骤,看看是否能解决您的问题:

      1. 重新启动/关闭 IntellJ:您可以毫无问题地执行sbt clean compile 吗?如果是这样,那就是 IntellJ 问题,所以首先关闭/重新启动 IntellJ。

      2. 删除 .idea 文件:好的,首先将您的文件夹复制/粘贴到新路径。在新文件夹中删除.idea 文件(Intellj 使用的生成文件)。

      3. 导入项目:在 intellJ 中转到 File > open 并在新文件夹中打开项目并选择“自动导入”。确保您的 scala 和 sbt 版本与 build.sbt 相同。

      4. 使缓存无效e:转到File > Invalidate Cache / Restarts。当我在基于 Gradle 的项目中工作时,这也特别解决了我的问题。

      【讨论】:

        猜你喜欢
        • 2018-11-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-09-16
        • 2015-01-02
        • 1970-01-01
        • 2017-03-07
        • 2013-12-28
        相关资源
        最近更新 更多