我要求我的某些依赖项位于单独的文件中。我怎么能做到这一点? docs.gradle.org上的一个示例是:
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
之后,虽然我不确定它是否有所作为。这简直太简单了。除了apply语句之外,build.gradle
没有任何更改,它仍然具有正常的repositories
和dependencies
闭包。感谢Opal让我走上正轨。
答案 0 :(得分:4)
你走了:
<强> 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
}