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 dependencies
Ich 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 № 1Bitte 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
}