2012-08-30 20 views
7

Tengo un proyecto que tiene código scala y java que actualmente estoy administrando en eclipse usando el plugin Scala IDE. En la actualidad, la estructura del directorio está organizada de tal manera que algunos paquetes tienen códigos java y scala en ellos. Hay clases de scala que dependen de las clases de Java y hay otras clases de Java que dependen de las clases scala. El complemento maneja todo esto de forma transparente, creo (pero no estoy 100% seguro) de que el compilador scala compila el código java y scala juntos, que es cómo se manejan las dependencias cruzadas. Encontré algunas referencias para compilar proyectos mixtos usando Maven e.g. here pero los que vi hablar sobre separar el java y el scala en dos árboles fuente separados. Maven intenta compilar primero el código scala que falla debido a las dependencias del código java. Del mismo modo, si el código de java se compiló primero, también fallaría ya que las dependencias funcionarían en ambos sentidos. ¿Hay alguna manera de que Maven compile todo el código como el plugin Eclipse? También me gustaría tener la capacidad de generar un proyecto de eclipse sin hacer demasiada reparación manual después si es posible.¿Puedo compilar un proyecto de Scala con código mixto de Java y scala con dependencias en ambos sentidos en Maven?

Respuesta

5

La estructura de directorios Maven es habitual

src/ 
    main/ 
    java/ 
     com/foo/mypackage/ 
    scala/ 
     com/foo/mypackage/ 

Si configura las cosas de esta manera a continuación para asegurarse de que puede tener dependencias cruzadas entre su código Java y Scala. Consulte las páginas maven-scala-plugin o scala-maven-plugin sobre el tema.

No recomendaría poner el código de Java y Scala en el mismo directorio.

+0

Originalmente probé esto, pero debo haber tenido un error en mi pom. Empecé con una copia literal del pom en el primer enlace y funcionó. Parece funcionar con árboles fuente separados o mixtos. ¿Por qué no recomienda combinar Scala y Java en el mismo directorio? – Shane

+0

Porque esa no es la forma en que el complemento quiere funcionar. Si puede hacer que funcione bien, háganoslo saber. Pero mi recomendación siempre va a ir con la corriente ... – sourcedelica

+0

¿por qué no es una buena idea poner código java y scala en el mismo directorio? – gosua

Cuestiones relacionadas