无论如何我都不是Gradle专家,所以请保持温柔...
我有一个Gradle构建,试图在Jenkins上运行。 build.gradle包含以下内容:
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return dataList.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! CustomCell
cell.lbl1.text = self.dataList[indexPath.row].0
cell.lbl2.text = self.dataList[indexPath.row].1
return cell
}
运行作业的Jenkins服务器无法访问“ some_internal_corporate_repo”。
由于我无法修改,我想知道是否有某种方法可以扩展或覆盖Jenkins服务器上的build.gradle,使其指向mavenCentral(或类似的内容),例如通过初始化文件或设置属性等?
预先感谢
编辑:最后,因为我使用的是Jenkins,所以我使用了Groovy支持(执行Groovy构建步骤)来解决我的问题:
repositories {
maven {
url "http://some_internal_corporate_repo"
}
}
答案 0 :(得分:1)
您可以定义 multiple repositories。
声明的顺序决定了Gradle在运行时如何检查依赖项
repositories {
maven {
url "http://some_internal_corporate_repo"
}
mavenCentral()
}
您可以使用属性来定义Maven存储库URL:
repositories {
maven {
url "${repositories_maven_url}"
}
}
在gradle.properties
文件中
repositories_maven_url=maven_url
根据gradle documentation,gradle.properties
文件按以下顺序应用:
gradle.properties
在项目根目录中。gradle.properties
在GRADLE_USER_HOME目录中。-Dgradle.user.home
时。或者您可以使用类似的:
repositories {
maven {
url getMavenUrl()
}
}
/**
* Returns the url of the maven repo.
* Set this value in your ~/.gradle/gradle.properties with repositories_maven_url key
* If the property is not defined returns a default value
* @return
*/
def getMavenUrl() {
return hasProperty('repositories_maven_url') ? repositories_maven_url : "YOUR_DEFAULT_VALUE"
}