如何避免gradle配置代码中的代码重复?



From my top - level gradle.build.kts:

allprojects {  
repositories {
maven {
url = uri(
"https://" +
getGradleProperty("artifactory-url-prefix") +
".artifactory....whatever/foo/"
)
credentials() {
username = getGradleProperty("id")
password = getGradleProperty("apikey")
}
}
maven {
url = uri(
"https://" +
getGradleProperty("artifactory-url-prefix") +
".artifactory....whatever/bar/"
)
credentials() {
username = getGradleProperty("id")
password = getGradleProperty("apikey")
}
}
}
}
如您所见,有大量的代码重复。我看到了如何创建一个助手方法来构建URL,但是是否有一个规范/惯用的方法来"做"URL ?credentials()块只是"一次"?

这将是一个很好的使用扩展函数:

// At top of file
import org.gradle.api.artifacts.repositories.MavenArtifactRepository
// Anywhere in file
fun MavenArtifactRepository.addCredentialsToRepository() {
credentials {
username = getGradleProperty("id")
password = getGradleProperty("apikey")
}
}

那么你可以这样做:

allprojects {  
repositories {
maven {
url = uri(
"https://" +
getGradleProperty("artifactory-url-prefix") +
".artifactory....whatever/foo/"
)
addCredentialsToRepository()
}
maven {
url = uri(
"https://" +
getGradleProperty("artifactory-url-prefix") +
".artifactory....whatever/bar/"
)
addCredentialsToRepository()
}
}
}

相关内容

最新更新