2017-01-24 3 views
0

Ich habe zwei separate Projekte, die ich getrennt halten möchte. Manchmal möchte ich jedoch in der Lage sein, sie zu einem zusammengesetzten Build zu kombinieren. Manchmal ist es schön, wenn ich das eine Zeit lang tun kann, ohne andere Entwickler zu beeinflussen. Also, ich möchte etwas wie folgt aus:Include-Konfigurationsdatei von settings.gradle

Mein Haupt settings.gradle, die in die Versionskontrolle geprüft werden würde, würde wie folgt aussehen:

// normal stuff 
if (File('extra-settings.gradle).exists()) { 
    // This is what I don't know how to do 
    includeOtherSettingsFile('extra-settings.gradle') 
} 

Dann extra settings.gradle, das ist nicht geprüft in der Quellcodeverwaltung, könnte wie folgt aussehen:

includeBuild('../anxml') { 
    dependencySubstitution { 
     substitute module('com.analyticspot.ml:framework') with project(':framework') 
    } 
} 

So kann ich eine extra settings.gradle Datei eine temporäre Verbund Build machen hinzufügen könnte. Behalten Sie dies für einige Commits bei, ohne andere Programmierer zu beeinflussen oder sich Sorgen zu machen, dass ich versehentlich meine temporären Änderungen an settings.gradle vornehmen würde, und dann, wenn ich fertig bin, könnte ich es einfach löschen.

Ich weiß von Prezi Stolz und es scheint groß, aber für unsere aktuellen Build

Kann es getan werden (wir buildSrc, RootDir etc. verwenden) nicht?

+0

fällt mir ein, dass ich 'extra settings.gradle' ein .yml machen könnte file und parse es hier und konvertiere zu grandle comands usw. und das würde aber viel mehr funktionieren und nicht so flexibel. Hoffe auf eine reine Gradle-Lösung. –

Antwort

1

settings.gradle ausgeführt wird, gegen eine Settings Instanz, die eine apply(Map) Methode hat, damit ich vermute, Sie tun:

// use Settings.getRootDir() so that it doesn't matter which directory you are executing from 
File extraSettings = new File(rootDir, 'extra-settings.gradle') 
if (extraSettings.exists()) { 
    apply from: extraSettings 
} 
+0

Danke. Habe einige Bugs, die repariert werden müssen, aber versuche es in den nächsten Tagen und berichte zurück. –

+0

Funktioniert wie ein Charme. Viel einfacher als ich erwartet hatte. –

Verwandte Themen