2016-06-17 8 views
3

IntelliJ 2.016,1 Gradle 2.1IntelliJ nicht gradle java Quermodultest Abhängigkeiten

Alles funktioniert auf der Kommandozeile mit gerade gradle lösen.

Struktur Projekt:

build.gradle 
\module1\build.gradle 
\module1\src\test\...... 
\module2\build.gradle 
\module2\src\test\...... 

Modul 2 ist von Modul 1. IntelliJ Testklassen mit den Shows Fehler "Kann Symbol nicht lösen". Die Korrekturaktion in IntelliJ ist 'Add Abhängigkeit von Modul', die nichts tut.

Wenn ich die module1_text.iml Datei manuell bearbeiten und

<orderEntry type="module" module-name="module1_test" production-on-test="" /> 

Dann funktioniert es für ein wenig hinzuzufügen.

Kann IntelliJ aus irgendeinem Grund die IMI-Datei nicht bearbeiten? Oder ist etwas in Gradle falsch konfiguriert?

Mein build.gradle, wozu auch der Test-Code in folgenden Weise:

testCompile project (path: ':modules:module1') 
+0

Nur eine kleine Änderung zu @capybaras Frage SO '. Wir fügen den Testcode wie folgt ein: evaluationDependsOn (': modules: modulename') compileTestJava.dependsOn tasks.getByPath (': modules: modulename: testClasses') – Siddhu

+0

Verwenden Sie das idea gradle plugin? Wahrscheinlich müssen Sie den IML-Dateien des Projekts einen Rewrite-Hook hinzufügen, um die Abhängigkeit zur Testausgabe des anderen Projekts hinzuzufügen. Für einige kurze Beispiele solcher Hooks siehe [hier] (https://docs.gradle.org/current/userguide/userguide_single.html#idea_plugin). Wir verwenden dies hier mit dem Eclipse-Plugin, das sehr ähnlich funktioniert ... – dpr

+0

Habt ihr das [http://stackoverflow.com/questions/24538929/how-do-i-get-intellij -zu-Auflösen-Gradle-Abhängigkeiten-für-benutzerdefinierte-Quelle-Sets? RQ = 1) Frage. Das sollte ziemlich genau sein, was Sie tun müssen ... – dpr

Antwort

3

Ich war in der Lage, eine Abhängigkeit zu einem anderen Projekt der Testklassen zu erstellen, indem Sie this Ansatz.

rootproject/settings.gradle:

rootProject.name = 'rootproject' 
include 'module1' 
include 'module2' 

rootproject/build.gradle:

task wrapper(type: Wrapper) { gradleVersion = "2.14" } 


allprojects { 
    repositories { 
     mavenCentral() 
    } 
} 


subprojects { 
    apply plugin: 'java' 
    apply plugin: 'idea' 

    sourceCompatibility = 1.8 

    dependencies { 
     testCompile group: 'junit', name: 'junit', version: '4.11' 
    } 
} 

rootproject/module1/build.gradle:

configurations { 
    testArtifacts.extendsFrom testRuntime 
} 
task testJar(type: Jar) { 
    classifier "test" 
    from sourceSets.test.output 
} 
artifacts { 
    testArtifacts testJar 
} 

rootproject/Module2/build .gradle

dependencies { 
    testCompile project (path: ':module1', configuration: 'testArtifacts') 
} 

Alles funktioniert wie erwartet nach dem Importieren des Rootprojekts mit IntelliJ's Graple Wizard.


UPDATE:

  • Added rootproject der settings.gradle Datei
Verwandte Themen