2017-05-05 20 views
0

我有几个问题可以通过自动导入建议来设置Scala和Eclipse。我可以运行(编译和运行)简单的Scala代码。但我需要自动/建议导入功能。建议导入不适用于Scala IDE(和sbt)

我第一次尝试使用现有的Eclipse(Version:Neon.2 Release(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-类型安全)

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

我试图按照本教程安装一个简单的应用程序阿卡,即使这是一个有点过时我给它一个尝试:http://doc.akka.io/docs/akka/1.3.1/intro/getting-started-first-scala-eclipse.html

当然我安装阿卡新版本(akka_2.11-2.4 .18.zip)并尝试将akka-actor.jar添加为外部jar。 当试图在Scala类文件中使用Worker类时,它显示我找不到该类的错误。点击红色的x不会给我一个解决方案,我需要手工编写导入线。 我的问题正是关于如何配置我的设置,Eclipse让我看到自动导入相应类的解决方案。

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

这就是它显示我:enter image description here

其实是隐藏的是弹出式的线,它只是这一行:

class Worker extends Actor { 

我的项目文件:

<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> 

回答

0

看来,Eclipse是不是斯卡拉开发一个非常不错的选择。

我切换到IntelliJ。 Scala可以在IntelliJ第一次使用时安装,它也支持sbt。 build.sbt文件中的变化被IntelliJ识别为触发sbt(例如安装新的依赖关系)。

当然建议导入一些未知类的使用包也工作正常。

它还可以让你安装不同版本的Scala非常简单。