eclipse scala eclipse-plugin scala-2.8

Mezcla de archivos Scala y Java en un proyecto Eclipse



eclipse-plugin scala-2.8 (2)

Me he dado cuenta de que Eclipse-IDE a veces no compila mis archivos de Scala cuando creo un archivo nuevo. Debo seleccionar el proyecto en el Explorador de paquetes y actualizarlo (F5). Además, puede cambiar el orden de compilación (Java primero vs. Scala primero) en Eclipse yendo a:

Ventana-> Preferencias-> Scala-> Compilador-> Build Manager-> compileorder

Probablemente estoy haciendo algo estúpido, pero no puedo verlo.

He instalado Eclipse Helios (Helios porque no conseguí que el soporte de Glassfish funcionara correctamente con Gallileo) y la compilación nocturna del complemento Scala Eclipse para Helios

He creado un proyecto de Scala y he agregado algunos archivos, una mezcla de Java y Scala.

Todos parecen ser sintácticamente correctos: el editor de Eclipse al menos parece saber qué idioma es cada archivo e informa correctamente sobre los errores de sintaxis cuando los hago, pero los archivos Java no pueden encontrar las clases creadas en Scala. El sitio del IDE parece sugerir que esto debería funcionar.

No hay archivos de clase en el directorio bin para ninguno de los archivos de Scala (hay archivos de clase para cada una de las clases definidas por los archivos de Java), por lo que parece que, por alguna razón, los archivos de Scala no se están creando. Estos archivos de clase faltantes explicarían por qué los archivos de Java no ven las clases.

¿Qué me he perdido? ¿Cómo le digo a Eclipse que construya esos archivos?


También estoy usando Helios (porque he ido de 64 bits) y encontré que el complemento se comporta un poco extraño a veces (aunque para ser honesto no es muy diferente al de Galileo). Al mezclar Java y Scala, como se encontró, parecería que no hay problema, pero no habría código compilado. O peor, una clase Java dependiente de una clase Scala no se compilaría porque la clase Scala no se compiló, pero no se compilaría hasta que todos los errores desaparecieran del proyecto, lo que, por supuesto, no ocurriría hasta que se compile ... ug.

Comencé a juguetear con la ruta de clase y los archivos de proyecto, y finalmente conseguí que funcionara, aunque realmente no puedo decir por qué. Juro que cambié un archivo, luego lo cambié, y luego funcionó.

De todos modos, aquí están mis archivos:

<?xml version="1.0" encoding="UTF-8"?> <projectDescription> <name>xxxxxxxxxxxxx</name> <comment></comment> <projects> </projects> <buildSpec> <buildCommand> <name>org.scala-ide.sdt.core.scalabuilder</name> <arguments> </arguments> </buildCommand> </buildSpec> <natures> <nature>org.eclipse.jdt.core.javanature</nature> <nature>org.scala-ide.sdt.core.scalanature</nature> </natures> </projectDescription>

y

<?xml version="1.0" encoding="UTF-8"?> <classpath> <classpathentry kind="src" path="src"/> <classpathentry kind="con" path="org.scala-ide.sdt.launching.SCALA_CONTAINER"/> <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> <classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/> <classpathentry kind="output" path="bin"/> </classpath>

Lo crítico parece ser que SCALA_CONTAINER viene antes que JRE_CONTAINER, pero ... Yo tampoco apostaría por ello. El orden de las "naturalezas" también puede ser importante.

Ha estado trabajando para mí desde hace una semana o dos, con actualizaciones diarias, así que ... * cruzé los dedos *