2016-07-04 9 views
0

Ich bin Umstrukturierung/Refactoring Build-Prozess für ein großes (ish) Projekt. Derzeit enthält es mehr als ein Dutzend separate Module, die jeweils mit eigenständigen Build-Skripten erstellt wurden. Ich möchte sie alle in einem einzigen Multiprojekt in Gradle integrieren.Multiprojekt Build: Abhängigkeit von Tests jar

Nachdem ich alle Quellen in einen einzigen Baum integriert, behoben build.gradle s, kam ich auf das folgende Problem. Abhängigkeiten für viele Module enthalten so etwas wie:

dependencies { 
    compile group: 'com.company', name: 'Module', version: '1.2.3' 
    // ... 
    testCompile group: 'com.company', name: 'Module', version: '1.2.3', classifier: 'tests' 
} 

ich die bauen will Gläser aus dem Teilprojekt verwenden, nicht aus einem Repository. Ich ersetzte compile ... durch compile project(':Module') und es funktioniert gut. Ich kann jedoch den Weg nicht finden, den Testspezifizierer an die testCompile project... Abhängigkeit zu übergeben.

Gibt es eine Möglichkeit, das tests Glas als eine Abhängigkeit zu testCompile abzuholen?

+0

Warten ... Haben Sie Testcode in Projekt A, die in Projekt B auf Testcode abhängt? Das klingt ein bisschen ungewöhnlich. Unter der Annahme, dass es sich um Unit-Tests handelt, sind diese normalerweise sehr lokal. – Jolta

+0

Gut ... Ja. Ich habe ein Projekt in einem wirklich traurigen Zustand geerbt. Projekt B verfügt über einige Testdienstprogramme, von denen die Komponententests in Projekt A abhängig sind. – Tomo

Antwort

1

Im produzierenden Projekt müssen Sie das JAR "Test" als austretendes Artefakt deklarieren.

configurations { 
    testUtils 
} 

task testUtilsJar(type: Jar) { 
    ... 
} 

artifacts { 
    testUtils testUtilsJar 
} 

Im raubend Projekt, das Sie auf sie als solche abhängig:

dependencies { 
    testCompile project(path: ':Module', configuration: 'testUtils') 
} 
Verwandte Themen