2010-09-02 13 views
8

Come si ottiene IntelliJ per configurare automaticamente il facet Scala in un progetto Maven con codice sorgente Scala e Java misto?Come configurare IDEA per configurare automaticamente sfaccettatura Scala per progetti Maven Scala/Java misti?

Sto usando Scala Plugin notte per Maia Costruire 2099.

mvn compilazione e prova mvn sia il lavoro dal prompt dei comandi e dal Maven Projects pannello in IntelliJ. Tuttavia, se provo a eseguire ScalaSpec direttamente in IntelliJ presenta una finestra di errore Impossibile compilare file Scala con contenuto Per favore, specifica il compilatore in Scala facet.

directory

Progetto struttura:

MixedJavaScala 
│ MixedScalaJava.iml 
│ pom.xml 
│ 
└───src 
    ├───main 
    │ ├───java 
    │ │  HelloJava.java 
    │ │ 
    │ └───scala 
    │   HelloScala.scala 
    │ 
    └───test 
     ├───java 
     │  TestJava.java 
     │ 
     └───scala 
       ScalaSpec.scala 

elenco di HelloJava.java:

public class HelloJava {} 

elenco di HelloScala.scala:

class HelloScala 

elenco di TestJava.java:

public class TestJava 
{ 
    @org.junit.Test public void example() {} 
} 

elenco di ScalaSpec.scala:

class ScalaSpec extends org.specs.Specification { 
    "nothing interesting should happen" in {} 
} 

elenco di pom.xml:

<?xml version="1.0" encoding="UTF-8"?> 

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <groupId>org.scala-tools.maven-scala-plugin</groupId> 
    <artifactId>MixedScalaJava</artifactId> 
    <version>1.0</version> 
    <name>Test for Java + Scala compilation</name> 
    <description>Test for Java + Scala compilation</description> 

    <dependencies> 
    <dependency> 
     <groupId>org.scala-tools.testing</groupId> 
     <artifactId>specs_2.8.0</artifactId> 
     <version>1.6.5</version> 
    </dependency> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>4.8.1</version> 
    </dependency> 
    <dependency> 
     <groupId>org.scala-lang</groupId> 
     <artifactId>scala-library</artifactId> 
     <version>2.8.0</version> 
    </dependency> 
    </dependencies> 
    <repositories> 
    <repository> 
     <id>scala-tools.org</id> 
     <name>Scala-tools Maven2 Repository</name> 
     <url>http://scala-tools.org/repo-releases</url> 
    </repository> 
    </repositories> 
    <pluginRepositories> 
    <pluginRepository> 
     <id>scala-tools.org</id> 
     <name>Scala-tools Maven2 Repository</name> 
     <url>http://scala-tools.org/repo-releases</url> 
    </pluginRepository> 
    </pluginRepositories> 

    <build> 
    <pluginManagement> 
     <plugins> 
     <plugin> 
      <groupId>org.scala-tools</groupId> 
      <artifactId>maven-scala-plugin</artifactId> 
      <version>2.14.1</version> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>2.3</version> 
     </plugin> 
     </plugins> 
    </pluginManagement> 
    <plugins> 
     <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.apache.maven.plugins</groupId> 
     <artifactId>maven-compiler-plugin</artifactId> 
     <executions> 
      <execution> 
      <phase>compile</phase> 
      <goals> 
       <goal>compile</goal> 
      </goals> 
      </execution> 
     </executions> 
     <configuration> 
      <source>1.6</source> 
      <target>1.6</target> 
     </configuration> 
     </plugin> 
    </plugins> 
    </build> 

</project> 

risposta

7

Aggiungere un nodo <configuration/> al <plugin/> nodo per maven-scala-plugin subito dopo lo <executions/> nodo

<configuration> 
    <scalaVersion>2.8.0</scalaVersion> 
</configuration> 

Ora la Scala Plugin rileva automaticamente il compilatore Scala e auto-configura la Scala Facet. Debugging, running, make e simili funzionano tutti direttamente tramite l'interfaccia di IntelliJ ora.

Funziona su scala-maven-plugin 3.2.0.

Si prega di notare che Since version 2.7 of the plugin, the scala version to use is detected from dependency to scala-library. So it suggested to not use scalaVersion configuration.

Problemi correlati