2014-01-27 6 views
7

Ich habe versucht, ein Groovy-Projekt mit Spock-Tests in IntelliJ IDEA zu erstellen.IntelliJ + Groovy + Spock

Hier sind Schritte, die ich gefolgt:

  1. Erstellt Projekt Groovy und hinzugefügt Maven Unterstützung.
  2. Spock Abhängigkeiten und Plugin hinzugefügt. Ich benutze POM sehr ähnlich zu diesem:
  3. Aufgrund der widersprüchlichen Groovy Abhängigkeit habe ich Groovy 2.2 Bibliothek aus dem Module Settings -> Libraries entfernt. So konnte ich Tests durchführen.
  4. Ich habe eine Groovy-Klasse in „src/main“ .. aber ich habe den Fehler, wenn ich versuche, es zu laufen:

Groovyc: Cannot compile Groovy files: no Groovy library is defined for module...

ich wahrscheinlich etwas fehlt bin, weil ich bin müde zu versuchen, verschiedene Konfigurationen für die Hälfte des Tages.

+0

Zeigen Sie uns Ihre pom.xml – MariuszS

Antwort

13

Für Projekt voll groovy versuchen GMavenPlus

Beispielprojekt: https://github.com/mariuszs/groovy-maven-sample

GMavenPlus IntelliJ Plugin installieren. IntelliJ erkennt Quellverzeichnisse nicht src/main/groovy, konfigurieren Sie dies manuell wie im folgenden Fenster Projekteinstellungen -> Module:.

groovy source code

Konfiguration

<project> 
    <build> 
    <plugins> 
     <plugin> 
     <groupId>org.codehaus.gmavenplus</groupId> 
     <artifactId>gmavenplus-plugin</artifactId> 
     <version>1.5</version> 
     <executions> 
      <execution> 
      <goals> 
       <goal>compile</goal> 
       <goal>testCompile</goal> 
      </goals> 
      </execution> 
     </executions> 
     </plugin> 
    </plugins> 
    </build> 
    <dependencies> 
    <dependency> 
     <groupId>org.codehaus.groovy</groupId> 
     <artifactId>groovy-all</artifactId> 
     <version>2.4.4</version> 
    </dependency> 
    <dependency> 
     <groupId>org.spockframework</groupId> 
     <artifactId>spock-core</artifactId> 
     <version>1.0-groovy-2.4</version> 
     <scope>test</scope> 
    </dependency>  
    </dependencies> 
</project> 
+1

schnelle schnelle Lösungen (y) :) – linuxeasy

+1

+1 kann nicht verstehen, warum IntelliJ dies so schwierig und unintuitiv gemacht; 3 Stunden nur um groovy Spock Tests mit Java Projekt zu bekommen! :-D – raffian

2

Es waren zwei Schritte, um die (gebrochen) Projekt zur Festsetzung:

  1. Aktualisieren Sie die groovy-all-Abhängigkeit auf Version 2.2.1, die ich hatte installiert auf meiner Maschine.
  2. In "projectName.iml" Datei ersetzen

Orderentry type = "Bibliothek" exportiert = "" scope = "TEST" name = "Maven: org.codehaus.groovy: groovy-all: 2.2.1" level = "Projekt"

mit diesem:

<orderEntry type="library" name="groovy-2.2.1" level="application" /> 

Diese Situation wird durch zwei Faktoren verursacht worden sein ich neu in die IDE und die Tatsache, dass die Dinge ki nda-sorta funktioniert auch, wenn Sie das Projekt falsch konfigurieren. Ich denke immer noch, dass diese Q & A für jemanden in der Zukunft nützlich sein könnte.

+2

Hmm, hast du versucht mit der rechten Maustaste auf * Project -> Maven -> Reimport *? Danach macht IntellIJ das für Sie :) Manuelle Bearbeitung der * .iml-Datei wird nicht benötigt und nicht empfohlen. Eine weitere einfache Option ist das Öffnen des Projekts mit "Delete existing configuration and reimport" – MariuszS

+0

Gut zu wissen. p.s. Nachdem ich die Antwort bearbeitet habe, zeigt der Stack keinen Teil davon :( –

0

Ich hatte dieses Problem "Kann Groovy-Dateien nicht kompilieren: keine Groovy-Bibliothek für das Modul definiert" vor kurzem. Ich musste mein grooviges Testverzeichnis als 'Test Sources Root' in IntelliJ markieren.

Rechtsklick auf dir -> Mark Directory als -> Test Quellen Wurzel

0

Für mich ist die Lösung, die eine .groovy-Datei in dem bestimmten Ordner/Modul und dann gab Idee, ein wenig Pop-up zu öffnen war zeigt an, dass das Groovy SDK nicht konfiguriert ist. Dann habe ich auf configure geklickt -> OK und voila.