/ /依存関係やリポジトリを別のファイルに置くことはできますか? - gradle、android-gradle

依存関係とリポジトリを別のファイルに置くことはできますか? - gradle、android-gradle

私はいくつかの依存関係が別々のファイルにあるという要件を持っています。どうすればこれを達成できますか? docs.gradle.orgのサンプルの1つは次のとおりです。

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
}

このようなことはうまくいくでしょうが、同じファイルにリポジトリを指定することもできます。

編集:

私が思いついた解決策

stuff.gradle

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

dependencies {
compile "things"
}

そして build.gradle

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

dependencies私はそれが違いを生むかどうかは分かりませんが、驚くほど単純でした。 build.gradle 適用ステートメントとは別に、それはまだ正常です repositories そして dependencies 閉鎖する。私を正しい軌道に乗せるためのオパールのおかげです。

回答:

回答№1は2

どうぞ:

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
}

リポジトリはリストとして保持できるため、回避策なしでリポジトリを保持する最も簡単な方法は、クロージャを使用することです。リポジトリを保持するためにリストを使用すると、両方とものメソッド解決エラーで失敗します mavenLocal そして mavenCentral.

リポジトリをリストとして保持したい場合は、次のコードを使用できます。

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
}