这里有一个类似的问题Access project extra properties in buildscript closure
但我找到了一个"解决方法"这看起来不是最佳的
我有一个多gradle项目 - 我在主gradle文件中声明了存储库 使用
int
现在我还必须为构建脚本设置这些,因为即时通讯使用插件!
再次使用buildscript {repositories ...
现在我没有粘贴URL两次而是想使用属性 - 因为我认为project.ext属性在buildscript阶段没有设置因此我把它们放在了 在我的gradle.settings文件中
我无法设置rootProject.ext.xx设置,因此我必须使用
subprojects {
repostiories {
maven {..}
}
}
现在我可以在build.gradle文件中使用gradle.ext.mavenURL
有更好的方法吗? 有没有办法在一个块中为所有项目设置buildscript和依赖性存储库,而不需要为buildscript重复一次,为依赖项重复一次?
答案 0 :(得分:3)
def repoClosure = { RepositoryHandler repoHandler ->
repoHandler.mavenLocal()
repoHandler.mavenCentral()
['http://mycompany/repo1', 'http://mycompany/repo2'].each { mavenURL ->
repoHandler.maven {
url mavenURL
credentials {
username 'foo'
password 'bar'
}
}
}
}
project.with {
allprojects {
repoClosure(buildscript.repositories)
repoClosure(repositories)
}
}