/ / Kann ich meine Abhängigkeiten und Repositorys in einer anderen Datei ablegen? - gradle, android-gradle

Kann ich meine Abhängigkeiten und Repositories in eine andere Datei einfügen? - Groß- und Kleinschreibung

Ich habe die Anforderung, dass einige meiner Abhängigkeiten in einer separaten Datei gespeichert sind. Wie kann ich das erreichen? Eines der Beispiele auf docs.gradle.org ist:

List groovy = ["org.codehaus.groovy:groovy-all:2.4.7@jar",
"commons-cli:commons-cli:1.0@jar",
"org.apache.ant:ant:1.9.6@jar"]
List hibernate = ["org.hibernate:hibernate:3.0.5@jar",
"somegroup:someorg:1.0@jar"]

dependencies {
runtime groovy, hibernate
}

So etwas würde funktionieren, aber ich möchte auch meine Repositories in derselben Datei angeben.

Bearbeiten:

Die Lösung, die ich mir ausgedacht habe

stuff.gradle

repositories {
maven {
credentials {
username "stuff"
password "stuff"
}
url "stuff"
}
}

dependencies {
compile "things"
}

Und in build.gradle

apply from: "path/to/stuff.gradle"

Nach dependenciesIch bin mir nicht sicher, ob es einen Unterschied macht. Es war überraschend einfach. Es gab keine Änderungen build.gradle abgesehen von der apply-Anweisung hat es immer noch das normale repositories und dependencies Verschlüsse. Danke an Opal für die richtige Spur.

Antworten:

2 für die Antwort № 1

Bitte schön:

lol.gradle:

ext.repos = { mavenCentral(); mavenLocal() }

ext.groovy = [
"org.codehaus.groovy:groovy-all:2.4.7@jar",
"commons-cli:commons-cli:1.0@jar",
"org.apache.ant:ant:1.9.6@jar",
]
ext.hibernate = [
"org.hibernate:hibernate:3.0.5@jar",
]

build.gradle

apply from: "lol.gradle"
apply plugin: "java"

repositories repos

dependencies {
runtime groovy, hibernate
}

Da Repositories als Liste geführt werden können, wird dieDie einfachste Möglichkeit, Repositorys ohne Problemumgehungen zu verwalten, ist die Verwendung eines Abschlusses. Wenn Sie eine Liste verwenden, um Repositorys ebenfalls aufzubewahren, schlägt die Methode für beide fehl mavenLocal und mavenCentral.

Wenn Sie es vorziehen, Repositorys als Liste aufzubewahren, kann der folgende Code verwendet werden:

lol.gradle

ext.repos = ["mavenCentral", "mavenLocal",]

ext.groovy = [
"org.codehaus.groovy:groovy-all:2.4.7@jar",
"commons-cli:commons-cli:1.0@jar",
"org.apache.ant:ant:1.9.6@jar",
]
ext.hibernate = [
"org.hibernate:hibernate:3.0.5@jar",
]

build.gradle

apply from: "lol.gradle"
apply plugin: "java"

repositories { r ->
repos.each { n -> r."$n"() }
}

dependencies {
runtime groovy, hibernate
}