在Android gradle构建脚本中定义我自己的自定义maven存储库
我知道Maven存储库通常可以使用类似于以下代码段的东西添加在Android gradle构建脚本中定义我自己的自定义maven存储库,gradle,android-gradle-plugin,Gradle,Android Gradle Plugin,我知道Maven存储库通常可以使用类似于以下代码段的东西添加 allprojects { repositories { mavenLocal() google() jcenter() } } 然而,我想要实现的是创建自己的Maven存储库条目。因此,添加到上面的示例中,这可能类似于下面的内容 allprojects { repositories { mavenLocal() google()
allprojects {
repositories {
mavenLocal()
google()
jcenter()
}
}
然而,我想要实现的是创建自己的Maven存储库条目。因此,添加到上面的示例中,这可能类似于下面的内容
allprojects {
repositories {
mavenLocal()
google()
jcenter()
myNewRepo()
}
}
请注意,“myNewRepo”是新的存储库,已添加到底部。如果我像上面所示简单地添加字符串,我会从gradle得到以下错误
在类型为org.gradle.api.internal.artifacts.dsl.DefaultRepositoryHandler的存储库容器上找不到参数[]的方法myRepo()
我这样做的原因是,我有一个我自己的几个Maven存储库的列表,而且我的所有应用程序都必须输入这些条目,这会让我感到很麻烦。例如,我当前的实现如下所示
allprojects {
repositories {
mavenLocal()
google()
jcenter()
maven {
url: "some url"
name: "some name"
}
maven {
url: "some url"
name: "some name"
}
maven {
url: "some url"
name: "some name"
}
maven {
url: "some url"
name: "some name"
}
maven {
url: "some url"
name: "some name"
}
}
}
我觉得创建自己的存储库条目可以让它更干净
我这样做的另一个动机是,我希望能够根据提供给gradle的一些输入属性有条件地添加一些maven存储库
gradle -Puse_repo=true <task>.
gradle-Puse\u repo=true。
我想如果我能够创建自己的条目,我可以在该条目中添加检查,以确定是否包含存储库
谢谢 我认为您不能真正添加像
jcenter()
这样的新条目,因为这些条目本质上只是内置接口上的方法
但是,如果您只是尝试将自己的存储库配置移动到单独的方法/闭包中,则可以使用以下选项之一:
def myNewRepos = {
maven {
url = "some url"
name = "some name"
}
if (project.hasProperty('use_repo')
&& project.property('use_repo') == 'true') {
maven {
url = "some other url"
name = "some other name"
}
}
// ... any others ...
}
/* OPTION 1: */
repositories {
mavenLocal()
// ... any others ...
}
repositories myNewRepos
/* OPTION 2: */
repositories {
mavenLocal()
// ... any others ...
myNewRepos.delegate = owner
myNewRepos()
}
谢谢你的主意。这看起来会奏效。有没有办法使这成为有条件的?所以只有在命令行上指定了属性的情况下才添加它。好的,对不起,我错过了你问题中的那个部分。我已经编辑了我的答案,以展示如何有条件地添加一个存储库(在我的示例代码中名为
someothername
)。谢谢