2017-10-31 1 views
1

zunächst ausschließen, ich ein Projekt wie dieses:wie Test abhängigkeit in gradle

project-a 
    src 
     main 
      java 
       A.java 
     test 
      java 
       ATest.java 

dann habe ich ein anderes Projekt wie folgt aus:

project-b 
    src 
     main 
      java 
       B.java 
     test 
      java 
       BTest.java 

die build.gradle Konfiguration, projekt- b Abhängigkeit Projekt-a

dependencies{ 
    compile project(":project-a") 
} 

die Frage BTest.java kann ATest.java zugreifen, wie dies zu vermeiden?

------------------- detaillierter zeigen --------------- enter image description here

settings.gradle

rootProject.name = 'test-dependence' 

include 'project-a', 'project-b' 

Projekt-b/build.gradle

dependencies { 
    compile project(":project-a") 
    testCompile group: 'junit', name: 'junit', version: '4.12' 
} 
+0

ich vielleicht BTest.java in Projekt-a schreiben, und Konflikte dann, so wollen nicht die Abhängigkeit – xiayouxue

+1

In meinen Tests, 'BTest.java' nicht zugreifen kann' ATest.java 'mit einer typischen Projektabhängigkeit. Bist du sicher, dass du das siehst? Wenn ja, können Sie mehr über Ihre Gradle-Dateien teilen? –

+0

@MichaelEaster Ich habe das Demo-Detail hinzugefügt – xiayouxue

Antwort

1

Leider gibt es ein Bit einer Impedanz-Fehlanpassung zwischen Gradle Modulen und Modulen IntelliJ da Gradle mehrere Klassenpfade (Konfigurationen) in einem Modul und IntelliJ ha ermöglicht s ein einzelner Klassenpfad pro Modul

Grundsätzlich erlaubt IntelliJ BTest.java den Zugriff auf ATest.java, aber wenn Sie von der Kommandozeile aus gebaut haben, erlaubt Gradle es nicht.

Versuchen Sie Folgendes in Intellij Gradle Einstellungen.

Preferences -> Build, Execution, Deployment -> Build Tools -> Gradle: check create separate modules per source set 

Verwandte Frage here

Verwandte Themen