flstaats
07/19/2017, 7:58 PMjlleitschuh
07/24/2017, 3:19 PMinit.script
file. Instead I have something a bit weirder but it works for my purposes.
I have a repositoryConfig.gradle.kts
file that I use like this:
/**
* To access this method use the following code:
* ```kotlin
* repositories {
* val repositoryConfig : (Any) -> Unit by rootProject.extra
* repositoryConfig(this)
* }
* `` `
* @see masterRepositoryConfig
*/
fun repositoryConfig(repositoryHandler: RepositoryHandler) =
masterRepositoryConfig(repositoryHandler, false)
/**
* To access this method use the following code:
* ```kotlin
* repositories {
* val buildScriptRepositoryConfig : (Any) -> Unit by rootProject.extra
* buildScriptRepositoryConfig(this)
* }
* `` `
* @see masterRepositoryConfig
*/
fun buildScriptRepositoryConfig(repositoryHandler: RepositoryHandler) =
masterRepositoryConfig(repositoryHandler, true)
/**
* To access this method use the following code:
* ```kotlin
* repositories {
* val publishingRepositoryConfig : (Any, Any) -> Unit by rootProject.extra
* publishingRepositoryConfig(version, this)
* }
* `` `
* @param version The version of the project being published.
* @param repositoryHandler The handler to be configured for publishing.
*/
fun publishingRepositoryConfig(version: String, repositoryHandler: RepositoryHandler) {
repositoryHandler.apply {
// Determine if the project is a SNAPSHOT on a per-project basis.
val isSnapshot = version.contains("-SNAPSHOT")
artifactoryLogin?.let { (artifactoryUsername, artifactoryPassword) ->
// Only configure publishing to artifactory if the the artifactory login object is non-null.
maven {
credentials {
username = artifactoryUsername
password = artifactoryPassword
}
setUrl(if (isSnapshot) companyLibSnapshotUrl else companyLibReleaseUrl)
}
}
}
}
extra["repositoryConfig"] = this::repositoryConfig
extra["publishingRepositoryConfig"] = this::publishingRepositoryConfig
extra["buildScriptRepositoryConfig"] = this::buildScriptRepositoryConfig
buildscript {
applyFrom("repositoryConfig.gradle.kts")
repositories {
val buildScriptRepositoryConfig : (Any) -> Unit by extra
buildScriptRepositoryConfig(this)
}
}
buildSrc/build.gradle.kts
I do this:
applyFrom("../repositoryConfig.gradle.kts")
repositories {
val buildScriptRepositoryConfig : (Any) -> Unit by extra
buildScriptRepositoryConfig(this)
}