2010-08-02 8 views
3

J'ai un projet avec des sources mixtes Java et Scala, en suivant les instructions sur this page, qui fonctionne lors de l'exécution de Maven à partir de la ligne de commande. Cependant, les personnes utilisant des IDE comme IDEA et Netbeans ont des problèmes pour résoudre les classes Scala dans le code Java (mais pas l'inverse, grâce aux bons plugins disponibles). Y a-t-il un moyen de les résoudre?Possible pour les IDE de résoudre les classes Scala en Java en utilisant Maven?

Remarque: Je peux construire à partir de la ligne de commande très bien; les classes Scala sont compilées avant les classes Java. Je veux juste que l'IDE reconnaisse cela aussi. Je pourrais créer un module séparé pour les classes Scala pour résoudre ce problème, mais il me semble que c'est trop compliqué.

Remarque: Dans IDEA, j'ai d'abord "Compiler les classes Scala" et cela ne fonctionne toujours pas.

Mise à jour: Voici les versions que je utilise: scala-bibliothèque 2.8.0 maven-plugin-scala 2,12 IDEA 9.0 Ultimate dernier plugin scala de prises en pension de plugin Netbeans 6.9 avec le plugin nuit scala

Répondre

1

Quelles versions (de Scala, les IDE, les plugins Scala) utilisez-vous?

J'ai eu les mêmes problèmes quand j'ai commencé à utiliser Scala 2.7 il y a environ 9 mois. Bien que je n'ai pas essayé un projet mixte récemment, j'ai cru comprendre que les problèmes seraient résolus dans Scala 2.8. Cela peut valoir la peine d'essayer Eclipse 3.5.2 avec Scala 2.8 - mon impression est que le plugin Eclipse suit les changements de 2.8 mieux que les autres plugins IDE (mais je peux me tromper).

+0

Yup. Eclipse 3.5.2 avec Scala 2.8 fonctionne bien pour moi. Je peux résoudre les classes Scala dans le code Java. Merci! – retiman

+0

@retiman Je me demande si l'utilisation de la version EAP d'IDEA fonctionnerait. J'ai récemment porté une base de code 2.7.7 à 2.8, et le passage à la version EAP a résolu un tas de problèmes pour moi. –

+0

@RavishBhagdev Cette question/réponse est vraiment périmée. Je suggère de poster votre propre question pour obtenir une réponse plus rapide. –

1

J'ai essayé de comprendre comment travailler avec Eclipse Indigo + Scala IDE 2.9, m2eclipse, mélange de scala 2.9 + jdk1.7 sans chance.

J'ai découvert que l'utilisation du plugin maven eclipse (mvn eclipse: eclipse) et l'importation du projet comme projet eclipse (pas le projet maven) avec la personnalisation ci-dessous ont nettoyé les marques d'erreur.

<plugin> 
    <groupId>org.scala-tools</groupId> 
    <artifactId>maven-scala-plugin</artifactId> 

    <executions> 
     <execution> 
      <id>scala-compile-first</id> 
      <phase>process-resources</phase> 
      <goals> 
       <goal>add-source</goal> 
       <goal>compile</goal> 
      </goals> 
     </execution> 
     <execution> 
      <id>scala-test-compile</id> 
      <phase>process-test-resources</phase> 
      <goals> 
       <goal>testCompile</goal> 
      </goals> 
     </execution> 
    </executions> 
</plugin> 

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>build-helper-maven-plugin</artifactId> 

    <executions> 
     <execution> 
      <id>add-source</id> 
      <phase>generate-sources</phase> 
      <goals> 
       <goal>add-source</goal> 
      </goals> 
      <configuration> 
       <sources> 
        <source>src/main/scala</source> 
       </sources> 
      </configuration> 
     </execution> 
     <execution> 
      <id>add-test-source</id> 
      <phase>generate-sources</phase> 
      <goals> 
       <goal>add-test-source</goal> 
      </goals> 
      <configuration> 
       <sources> 
        <source>src/test/scala</source> 
       </sources> 
      </configuration> 
     </execution> 
    </executions  
</plugin> 

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-eclipse-plugin</artifactId> 
    <version>2.8</version> 

    <configuration> 
     <downloadSources>true</downloadSources> 
     <downloadJavadocs>true</downloadJavadocs> 
     <projectnatures> 
      <projectnature>org.scala-ide.sdt.core.scalanature</projectnature> 
      <projectnature>org.eclipse.jdt.core.javanature</projectnature> 
     </projectnatures> 
     <buildcommands> 
      <buildcommand>org.scala-ide.sdt.core.scalabuilder</buildcommand> 
     </buildcommands> 
     <classpathContainers> 
      <classpathContainer>org.scala-ide.sdt.launching.SCALA_CONTAINER"</classpathContainer> 
      <classpathContainer>org.eclipse.jdt.launching.JRE_CONTAINER</classpathContainer> 
     </classpathContainers> 
     <excludes> 
      <exclude>org.scala-lang:scala-library</exclude> 
      <exclude>org.scala-lang:scala-compiler</exclude> 
     </excludes> 
     <sourceIncludes> 
      <sourceInclude>**/*.scala</sourceInclude> 
      <sourceInclude>**/*.java</sourceInclude> 
     </sourceIncludes> 
    </configuration> 
</plugin>