Configure Kotlin: add mavenCentral() to repositories

Since kotlin stdlib depends on artifacts from mavenCentral() we should add it
 #KT-18719 Fixed
This commit is contained in:
Vyacheslav Gerasimov
2017-11-01 17:41:42 +03:00
parent 093f796fc7
commit ffa9478d0c
8 changed files with 25 additions and 3 deletions
@@ -67,6 +67,7 @@ class GroovyBuildScriptManipulator(private val groovyScript: GroovyFile) : Gradl
groovyScript.getRepositoriesBlock().apply { groovyScript.getRepositoriesBlock().apply {
addRepository(version) addRepository(version)
addMavenCentralIfMissing()
} }
groovyScript.getDependenciesBlock().apply { groovyScript.getDependenciesBlock().apply {
@@ -90,6 +91,7 @@ class GroovyBuildScriptManipulator(private val groovyScript: GroovyFile) : Gradl
getBuildScriptRepositoriesBlock().apply { getBuildScriptRepositoriesBlock().apply {
addRepository(version) addRepository(version)
addMavenCentralIfMissing()
} }
getBuildScriptDependenciesBlock().apply { getBuildScriptDependenciesBlock().apply {
@@ -211,6 +213,9 @@ class GroovyBuildScriptManipulator(private val groovyScript: GroovyFile) : Gradl
return addLastExpressionInBlockIfNeeded(snippet) return addLastExpressionInBlockIfNeeded(snippet)
} }
private fun GrClosableBlock.addMavenCentralIfMissing(): Boolean =
if (!isRepositoryConfigured(text)) addLastExpressionInBlockIfNeeded(MAVEN_CENTRAL) else false
private fun GrStatementOwner.getRepositoriesBlock() = getBlockOrCreate("repositories") private fun GrStatementOwner.getRepositoriesBlock() = getBlockOrCreate("repositories")
private fun GrStatementOwner.getDependenciesBlock(): GrClosableBlock = getBlockOrCreate("dependencies") private fun GrStatementOwner.getDependenciesBlock(): GrClosableBlock = getBlockOrCreate("dependencies")
@@ -39,7 +39,11 @@ class KotlinBuildScriptManipulator(private val kotlinScript: KtFile) : GradleBui
addExpressionAfterIfMissing("$GSK_KOTLIN_VERSION_PROPERTY_NAME = \"$version\"", it) addExpressionAfterIfMissing("$GSK_KOTLIN_VERSION_PROPERTY_NAME = \"$version\"", it)
} }
getRepositoriesBlock()?.addRepositoryIfMissing(version) getRepositoriesBlock()?.apply {
addRepositoryIfMissing(version)
addMavenCentralIfMissing()
}
getDependenciesBlock()?.addPluginToClassPathIfMissing() getDependenciesBlock()?.addPluginToClassPathIfMissing()
} }
@@ -57,7 +61,11 @@ class KotlinBuildScriptManipulator(private val kotlinScript: KtFile) : GradleBui
script?.blockExpression?.addDeclarationIfMissing("val $GSK_KOTLIN_VERSION_PROPERTY_NAME: String by extra", true) script?.blockExpression?.addDeclarationIfMissing("val $GSK_KOTLIN_VERSION_PROPERTY_NAME: String by extra", true)
getApplyBlock()?.createPluginIfMissing(kotlinPluginName) getApplyBlock()?.createPluginIfMissing(kotlinPluginName)
getDependenciesBlock()?.addCompileStdlibIfMissing(stdlibArtifactName) getDependenciesBlock()?.addCompileStdlibIfMissing(stdlibArtifactName)
getRepositoriesBlock()?.addRepositoryIfMissing(version) getRepositoriesBlock()?.apply {
addRepositoryIfMissing(version)
addMavenCentralIfMissing()
}
jvmTarget?.let { jvmTarget?.let {
changeKotlinTaskParameter("jvmTarget", it, forTests = false) changeKotlinTaskParameter("jvmTarget", it, forTests = false)
changeKotlinTaskParameter("jvmTarget", it, forTests = true) changeKotlinTaskParameter("jvmTarget", it, forTests = true)
@@ -223,6 +231,9 @@ class KotlinBuildScriptManipulator(private val kotlinScript: KtFile) : GradleBui
return addExpressionIfMissing(snippet) as? KtCallExpression return addExpressionIfMissing(snippet) as? KtCallExpression
} }
private fun KtBlockExpression.addMavenCentralIfMissing(): KtCallExpression? =
if (!isRepositoryConfigured(text)) addExpressionIfMissing(MAVEN_CENTRAL) as? KtCallExpression else null
private fun KtBlockExpression.addPluginToClassPathIfMissing(): KtCallExpression? = private fun KtBlockExpression.addPluginToClassPathIfMissing(): KtCallExpression? =
addExpressionIfMissing(getKotlinGradlePluginClassPathSnippet()) as? KtCallExpression addExpressionIfMissing(getKotlinGradlePluginClassPathSnippet()) as? KtCallExpression
@@ -8,6 +8,7 @@ buildscript {
maven { maven {
url 'http://oss.sonatype.org/content/repositories/snapshots' url 'http://oss.sonatype.org/content/repositories/snapshots'
} }
mavenCentral()
} }
} }
apply plugin: 'android' apply plugin: 'android'
@@ -21,6 +21,7 @@ buildscript {
maven { maven {
url 'http://dl.bintray.com/kotlin/kotlin-eap' url 'http://dl.bintray.com/kotlin/kotlin-eap'
} }
mavenCentral()
} }
dependencies { dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
@@ -21,6 +21,7 @@ buildscript {
maven { maven {
url 'http://dl.bintray.com/kotlin/kotlin-eap-1.1' url 'http://dl.bintray.com/kotlin/kotlin-eap-1.1'
} }
mavenCentral()
} }
dependencies { dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
@@ -21,6 +21,7 @@ buildscript {
maven { maven {
url 'http://dl.bintray.com/kotlin/kotlin-eap' url 'http://dl.bintray.com/kotlin/kotlin-eap'
} }
mavenCentral()
} }
dependencies { dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
@@ -9,6 +9,7 @@ buildscript {
maven { maven {
setUrl("http://dl.bintray.com/kotlin/kotlin-eap-1.1") setUrl("http://dl.bintray.com/kotlin/kotlin-eap-1.1")
} }
mavenCentral()
} }
dependencies { dependencies {
classpath(kotlinModule("gradle-plugin", kotlin_version)) classpath(kotlinModule("gradle-plugin", kotlin_version))
@@ -8,6 +8,7 @@ buildscript {
maven { maven {
setUrl("http://dl.bintray.com/kotlin/kotlin-eap") setUrl("http://dl.bintray.com/kotlin/kotlin-eap")
} }
mavenCentral()
} }
dependencies { dependencies {
classpath(kotlinModule("gradle-plugin", kotlin_version)) classpath(kotlinModule("gradle-plugin", kotlin_version))