繁体   English   中英

建议导入不适用于Scala IDE(和sbt)

[英]Suggest imports does not work with Scala IDE (and sbt)

在设置具有自动导入建议的Scala和Eclipse时遇到了几个问题。 我可以运行(编译并运行)简单的Scala代码。 但是我需要自动/建议导入功能。

我的第一次尝试是使用现有的Eclipse(版本:Neon.2版本(4.6.2))并通过更新站点安装Scala。 安装已完成,但是无法检测到我的JRE。 指向我的javac所在的目录,以及他们的父母也没有工作,Eclipse没有将其识别为有效的JRE根目录。

/usr/bin/javac -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/javac

因此,我决定从http://scala-ide.org/下载一个Scala IDE(内部版本号:4.5.0-vfinal-2016-12-13T10:59:29Z-Typesafe)

我已经通过自制软件安装了scala(2.12.2),但我读到Scala IDE带有自己的Scala版本(2.10和2.11),因此这不应该成为问题。

我尝试按照本教程设置了一个简单的Akka应用程序,即使它有点过时,我也尝试了一下: http : //doc.akka.io/docs/akka/1.3.1/intro/getting-started负一阶,eclipse.html

当然,我安装了较新版本的Akka(akka_2.11-2.4.18.zip),并尝试将akka-actor.jar添加为外部jar。 尝试在Scala类文件中使用Worker类时,它向我显示找不到该类的错误。 单击红色的x并没有显示解决方案,我需要手工编写导入行。 我的问题恰恰是关于如何配置我的设置,以使Eclipse向我展示自动导入正确的类的解决方案。

我试图用sbt(0.13)和sbteclipse设置项目。 我做了安装程序,其解释方式如下: 如何将scala库添加到eclipse并添加Akka作为依赖项。 它安装了很多东西(在终端中看到了很多输出),并且我在Eclipse中使用了Import existing project ,但是自动导入仍然无法正常工作。 如果我打开属性并导航到Java Build Path,它看起来很好,我的意思是没有错误或警告。

这就是给我看的: 在此处输入图片说明

实际上,该行在弹出窗口中是隐藏的,仅此行:

class Worker extends Actor {

我的.project文件:

<projectDescription>
  <name>My Project</name>
  <buildSpec>
    <buildCommand>
      <name>org.scala-ide.sdt.core.scalabuilder</name>
    </buildCommand>
  </buildSpec>
  <natures>
    <nature>org.scala-ide.sdt.core.scalanature</nature>
    <nature>org.eclipse.jdt.core.javanature</nature>
  </natures>
  <linkedResources> </linkedResources>
</projectDescription>

我的build.sbt文件:

name := "My Project"

version := "1.0"

scalaVersion := "2.11.11"

libraryDependencies +=
  "com.typesafe.akka" %% "akka-actor" % "2.5.1"

我的.classpath文件:

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
    <classpathentry kind="src" path="foo.bar"/>
    <classpathentry kind="con" path="org.scala-ide.sdt.launching.SCALA_CONTAINER"/>
    <classpathentry kind="lib" path="/Users/timaschew/.ivy2/cache/com.typesafe.akka/akka-actor_2.11/jars/akka-actor_2.11-2.5.1.jar" sourcepath="/Users/timaschew/.ivy2/cache/com.typesafe.akka/akka-actor_2.11/srcs/akka-actor_2.11-2.5.1-sources.jar">
        <attributes>
            <attribute name="javadoc_location" value="jar:file:/Users/timaschew/.ivy2/cache/com.typesafe.akka/akka-actor_2.11/docs/akka-actor_2.11-2.5.1-javadoc.jar!/"/>
        </attributes>
    </classpathentry>
    <classpathentry kind="lib" path="/Users/timaschew/.ivy2/cache/com.typesafe/config/bundles/config-1.3.1.jar" sourcepath="/Users/timaschew/.ivy2/cache/com.typesafe/config/srcs/config-1.3.1-sources.jar">
        <attributes>
            <attribute name="javadoc_location" value="jar:file:/Users/timaschew/.ivy2/cache/com.typesafe/config/docs/config-1.3.1-javadoc.jar!/"/>
        </attributes>
    </classpathentry>
    <classpathentry kind="lib" path="/Users/timaschew/.ivy2/cache/org.scala-lang.modules/scala-java8-compat_2.11/bundles/scala-java8-compat_2.11-0.7.0.jar" sourcepath="/Users/timaschew/.ivy2/cache/org.scala-lang.modules/scala-java8-compat_2.11/srcs/scala-java8-compat_2.11-0.7.0-sources.jar">
        <attributes>
            <attribute name="javadoc_location" value="jar:file:/Users/timaschew/.ivy2/cache/org.scala-lang.modules/scala-java8-compat_2.11/docs/scala-java8-compat_2.11-0.7.0-javadoc.jar!/"/>
        </attributes>
    </classpathentry>
    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
    <classpathentry kind="output" path="bin"/>
</classpath>

对于Scala开发而言,Eclipse似乎并不是一个很好的选择。

我切换到IntelliJ。 Scala可以在IntelliJ的首次使用时安装,它也支持sbt。 IntelliJ可以识别build.sbt文件中的更改以触发sbt(例如,安装新的依赖项)。

当然,建议导入一些软件包以使用未知类也可以正常工作。

它还允许您非常轻松地安装不同版本的Scala。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM