Проблема при создании проекта в scalaide

Я использую scala IDE eclipse версии 4.4.0 со Scala 2.11.8. Я могу скомпилировать проект из командной строки, используя sbt compile, и создать специальные файлы проекта eclipse, используя sbt eclipse (используя для этого sbteclipse). Однако, пока я нажимаю на проект сборки в контекстном меню, это дает исключение

**Errors occurred during the build.
Errors running builder 'Scala Builder' on project project_name.
org.eclipse.core.internal.resources.File cannot be cast to org.eclipse.core.resources.IContainer**

Вот журнал ошибок того же .

**!ENTRY org.scala-ide.sdt.core 4 0 2017-01-09 14:13:56.020
!MESSAGE Error thrown while initializing the presentation compiler.
!STACK 0
java.lang.ClassCastException: org.eclipse.core.internal.resources.File cannot be cast to org.eclipse.core.resources.IContainer
    at org.scalaide.core.internal.project.ScalaProject$$anonfun$sourceOutputFolders$2$$anonfun$apply$7.apply(ScalaProject.scala:242)
    at org.scalaide.core.internal.project.ScalaProject$$anonfun$sourceOutputFolders$2$$anonfun$apply$7.apply(ScalaProject.scala:232)
    at scala.Option$WithFilter.map(Option.scala:207)
    at org.scalaide.core.internal.project.ScalaProject$$anonfun$sourceOutputFolders$2.apply(ScalaProject.scala:232)
    at org.scalaide.core.internal.project.ScalaProject$$anonfun$sourceOutputFolders$2.apply(ScalaProject.scala:231)
    at scala.collection.TraversableLike$WithFilter$$anonfun$flatMap$2.apply(TraversableLike.scala:714)
    at scala.collection.immutable.List.foreach(List.scala:381)
    at scala.collection.TraversableLike$WithFilter.flatMap(TraversableLike.scala:713)
    at org.scalaide.core.internal.project.ScalaProject.sourceOutputFolders(ScalaProject.scala:231)
    at org.scalaide.core.internal.project.ScalaProject.initializeCompilerSettings(ScalaProject.scala:478)
    at org.scalaide.core.internal.project.ScalaProject.org$scalaide$core$internal$project$ScalaProject$$prepareCompilerSettings(ScalaProject.scala:435)
    at org.scalaide.core.internal.project.ScalaProject$$anonfun$5.apply(ScalaProject.scala:159)
    at org.scalaide.core.internal.project.ScalaProject$$anonfun$5.apply(ScalaProject.scala:159)
    at org.scalaide.core.internal.compiler.PresentationCompilerProxy.liftedTree1$1(PresentationCompilerProxy.scala:152)
    at org.scalaide.core.internal.compiler.PresentationCompilerProxy.create(PresentationCompilerProxy.scala:151)
    at org.scalaide.core.internal.compiler.PresentationCompilerProxy.initialize(PresentationCompilerProxy.scala:116)
    at org.scalaide.core.internal.compiler.PresentationCompilerProxy.obtainPc$1(PresentationCompilerProxy.scala:78)
    at org.scalaide.core.internal.compiler.PresentationCompilerProxy.internal(PresentationCompilerProxy.scala:98)
    at org.scalaide.core.internal.jdt.model.ScalaCompilationUnit$class.addToIndexer(ScalaCompilationUnit.scala:157)
    at org.scalaide.core.internal.jdt.model.ScalaSourceFile.addToIndexer(ScalaSourceFile.scala:66)
    at org.scalaide.core.internal.jdt.search.ScalaSourceIndexer$$anonfun$indexDocument$2.apply(ScalaSourceIndexer.scala:16)
    at org.scalaide.core.internal.jdt.search.ScalaSourceIndexer$$anonfun$indexDocument$2.apply(ScalaSourceIndexer.scala:16)
    at scala.Option.map(Option.scala:146)
    at org.scalaide.core.internal.jdt.search.ScalaSourceIndexer.indexDocument(ScalaSourceIndexer.scala:16)
    at scala.tools.eclipse.contribution.weaving.jdt.indexerprovider.IndexerProviderAspect.ajc$around$scala_tools_eclipse_contribution_weaving_jdt_indexerprovider_IndexerProviderAspect$1$16276a3c(IndexerProviderAspect.aj:30)
    at org.eclipse.jdt.internal.core.search.JavaSearchParticipant.indexDocument(JavaSearchParticipant.java:71)
    at org.eclipse.jdt.internal.core.search.indexing.IndexManager.indexDocument(IndexManager.java:504)
    at org.eclipse.jdt.internal.core.search.indexing.IndexManager$1.execute(IndexManager.java:984)
    at org.eclipse.jdt.internal.core.search.processing.JobManager.run(JobManager.java:405)
    at java.lang.Thread.run(Thread.java:745)**

person skm    schedule 09.01.2017    source источник
comment
может плагин sbteclipse делает что-то не так? попробуйте импортировать проект sbt из scala IDE (он должен сам создать проект eclipse)   -  person pedrorijo91    schedule 09.01.2017
comment
@pedrorijo91 не смог получить проект sbt из IDE scala. Я использую sbt из командной строки для создания конкретных файлов проекта eclipse, чтобы импортировать его в eclipse. Как я могу сделать это напрямую из Scala IDE??   -  person skm    schedule 09.01.2017
comment
Я никогда не использовал scala IDE, только Intellij (но они похожи). Вероятно, в разделе «Файл»> «Импорт/Создать новый проект».   -  person pedrorijo91    schedule 09.01.2017


Ответы (1)


Ваш подключаемый модуль Scala IDE для Eclipse дает сбой из-за использования внутренних классов вместо общедоступного API из Eclipse (ClassCastException из org.eclipse.....internal.... классов в org.scalaide....). Это может быть вызвано использованием более старой версии подключаемого модуля Scala в более новой версии Eclipse.

Либо используйте последнюю версию обоих, либо Eclipse и плагин Scala IDE или используйте Scala IDE, которая содержит Eclipse, Scala и подключаемый модуль Scala версий, которые были тестировали вместе.

person howlger    schedule 27.08.2017