2012-05-16 7 views
7

que estoy tratando de compilar una macro (Scala) en Eclipse 3.7.2 con el plugin Scala IDE disponible para Scala 2.10.0-M3, pero yo estoy experimentando el siguiente error:ScalaMacros y Eclipse

"macro implementación no encontrada: XXXXX (la razón más común es que no puede usar implementaciones de macro en la misma ejecución de compilación que las define) si necesita definir implementaciones de macro junto con el resto de su programa, considere la compilación en dos fases con -Xmacro-fallback-classpath en la segunda fase que apunta a la salida de la primera fase "

Ya sé cómo evitarlo con un simple editor y un término inal (solo siguiendo el mensaje de error), pero ¿es posible lograr la tarea de doble fase en Eclipse?

+0

Por ahora, voy a crear un nuevo proyecto para mantener las implementaciones de macros en él. Esta fea solución permite que el código compile bien. – jeslg

+2

Sí, esta es una solución canónica para manejar macros. –

Respuesta

9

Cómo crear un macroproyecto para vincularlo a un existente Proyecto:

  • Crear un proyecto llamado Scala por ejemplo ProjectMacros, coloque un archivo llamado por ejemplo Macros.scala que contiene macros en él. Este proyecto debe compilarse sin problemas, porque solo hay macros.
  • Haga clic derecho en el proyecto scala existente, luego en "Propiedades". La ventana Propiedades se abre.
  • En la sección Java Build Path:
    • En la pestaña Projects, añadir ProjectMacros.
    • Debajo de la pestaña Libraries, haga clic en Add Class Folder, y seleccione el directorio ProjectMacros/bin.
  • En la sección Project References, comprobar ProjectMacros

Ahora, después de añadir en el proyecto existente como una importación import Macros._ puede utilizar las funciones de macros y anotaciones.

1

Probablemente pueda usar Ant para construir, pero como dice que ya logró esto con el terminal, creo que sería más fácil crear un script y ejecutarlo mediante un generador personalizado (vaya a propiedades del proyecto, haga clic en Constructores -> Nuevo ... -> Programe y luego configúrelo para ejecutar su secuencia de comandos

3

Bueno, separar la implementación de macros y la macro invocación en dos proyectos diferentes (y jugar con referencias de proyectos) parece resolver el problema. -El plugin ha sido notablemente mejorado con su versión para Scala 2.10-M4 (en términos de soporte de macros), por lo que recomiendo actualizarlo.

+3

¿Está diciendo que Scala IDE ahora admite la compilación en niveles en el mismo proyecto? ¿Si es así, cómo? – nilskp