2010-09-02 3 views
8

Wie bekomme ich IntelliJ, um die Facette Scala in einem Maven-Projekt mit gemischtem Scala- und Java-Quellcode automatisch zu konfigurieren?Wie IDEA eingerichtet wird, Scala-Facette für gemischtes Scala/Java Maven-Projekt automatisch zu konfigurieren?

I Scala Plugin Nightly bin mit Maia bauen 2099.

und mvn Test beide arbeiten an der Eingabeaufforderung und aus dem Maven Projekte Panel in IntelliJ mvn kompilieren. Wenn ich jedoch versuche, ScalaSpec direkt in IntelliJ auszuführen, wird ein Fehlerdialog angezeigt. Scala-Dateien können nicht kompiliert werden mit Inhalt Bitte geben Sie den Compiler in der Scala-Facette an.

Projektverzeichnisstruktur:

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

Eintrag von HelloJava.java:

public class HelloJava {} 

Eintrag von HelloScala.scala:

class HelloScala 

Eintrag von TestJava.java:

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

Eintrag von ScalaSpec.scala:

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

Eintrag von 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> 

Antwort

7

hinzufügen <configuration/> Knoten auf die <plugin/> Knoten für maven-scala-plugin direkt nach der <executions/> Knoten

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

Nun ist die Scala Plugin erkennt automatisch die Scala-Compiler und automatisch konfiguriert die Scala Facet. Debugging, Running, Make und Ähnliches funktionieren jetzt direkt über die IntelliJ-Schnittstelle.

Es funktioniert bis zu scala-maven-plugin 3.2.0.

Bitte beachten Sie, dass

Verwandte Themen