2017-01-13 6 views

Antwort

1

Sie könnten eine Version auf der Kommandozeile übergeben

gradle build -PfooVersion=1.0 -barVersion=2.0 

Dann in Ihrem gradle Skript

dependencies { 
    compile "x:foo:${fooVersion}" 
    compile "y:bar:${barVersion}" 
} 

Dann könnten Sie Skript die Ausführung der verschiedenen Kombinationen Sie

Hinweis ausführen möchten : Es gibt einen GradleBuild Task, der einen anderen Gradle-Build ausführen kann, so dass Sie einen Gradle-Build mehrere Male mit der anderen Parameterkombination ausführen lassen können ns. ZB:

apply plugin: 'base' 

def allFooVersions = ['1.0', '2.0', 3.0'] 
def allBarVersions = ['1.1', '2.2'] 

[allFooVersions, allBarVersions].eachCombination { combination -> 
    // create a task for each combination 
    GradleBuild task = tasks.create("combination${combination}", GradleBuild) 
    task.buildFile = 'path/to/build.gradle' 
    task.startParameter.projectProperties = [ 
     fooVersion: combination[0], 
     barVersion: combination[1] 
    ] 
    task.tasks = ['test'] 

    // wire the task into the dag 
    check.dependsOn task 
} 
+0

Dieser Code sollte in der gleichen 'Build.gradle' oder in anderen? – Dims

+0

Sorry, verstehe kein Wort in deinem Skript :) – Dims

+1

Es sind zwei separate Build-Skripte. Man akzeptiert Versionen als Parameter und verwendet die Parameter für Abhängigkeitsversionen. Der andere ist ein Kabelbaum, der den ersten unter Verwendung aller Versionskombinationen ausführt. –

0

Sie könnten verschiedene Zweige in Ihrem SCM mit unterschiedlichen Abhängigkeitsversionen haben, die jeweils in der GRADLE-Build-Datei definiert sind.

Dann haben Sie einen Build-Server kalt, der jedes Test-Zweig-ob-Top Ihres Dev-Zweigs rebasiert und die Tests ausführt.

Verwandte Themen