Correct setup for the mavenDeployer

This commit is contained in:
Ilya Gorbunov
2017-09-16 23:21:57 +03:00
committed by Ilya Chernikov
parent 4a3c8286a3
commit c29e44f057
3 changed files with 19 additions and 12 deletions
@@ -7,10 +7,12 @@ import org.gradle.api.artifacts.Dependency
import org.gradle.api.artifacts.maven.MavenResolver import org.gradle.api.artifacts.maven.MavenResolver
import org.gradle.api.plugins.MavenRepositoryHandlerConvention import org.gradle.api.plugins.MavenRepositoryHandlerConvention
import org.gradle.api.publication.maven.internal.deployer.MavenRemoteRepository
import org.gradle.api.tasks.Upload import org.gradle.api.tasks.Upload
import org.gradle.kotlin.dsl.* import org.gradle.kotlin.dsl.*
import org.gradle.plugins.signing.Sign import org.gradle.plugins.signing.Sign
import org.gradle.plugins.signing.SigningExtension import org.gradle.plugins.signing.SigningExtension
import kotlin.properties.Delegates
/** /**
@@ -19,6 +21,8 @@ import org.gradle.plugins.signing.SigningExtension
*/ */
open class PublishedKotlinModule : Plugin<Project> { open class PublishedKotlinModule : Plugin<Project> {
private fun String.toBooleanOrNull() = listOf(true, false).firstOrNull { it.toString().equals(this, ignoreCase = true) }
override fun apply(project: Project) { override fun apply(project: Project) {
project.run { project.run {
@@ -28,12 +32,8 @@ open class PublishedKotlinModule : Plugin<Project> {
if (!project.hasProperty("prebuiltJar")) { if (!project.hasProperty("prebuiltJar")) {
plugins.apply("signing") plugins.apply("signing")
val signingProp = project.rootProject.properties["signingRequired"] val signingRequired = project.findProperty("signingRequired")?.toString()?.toBooleanOrNull()
val signingRequired = when (signingProp) { ?: project.property("isSonatypeRelease") as Boolean
is Boolean -> signingProp == true
is String -> listOf("true", "yes").contains(signingProp.toLowerCase().trim())
else -> project.rootProject.extra["isSonatypeRelease"] as? Boolean == true
}
configure<SigningExtension> { configure<SigningExtension> {
isRequired = signingRequired isRequired = signingRequired
@@ -95,16 +95,19 @@ open class PublishedKotlinModule : Plugin<Project> {
val username: String? by preparePublication.extra val username: String? by preparePublication.extra
val password: String? by preparePublication.extra val password: String? by preparePublication.extra
val repoUrl: String by preparePublication.extra
var repository: MavenRemoteRepository by Delegates.notNull()
repositories { repositories {
withConvention(MavenRepositoryHandlerConvention::class) { withConvention(MavenRepositoryHandlerConvention::class) {
mavenDeployer { mavenDeployer {
withGroovyBuilder { withGroovyBuilder {
"repository"("url" to uri(preparePublication.extra["repoUrl"])) "repository"("url" to repoUrl)!!.also { repository = it as MavenRemoteRepository }.withGroovyBuilder {
if (username != null && password != null) {
if (username != null && password != null) { "authentication"("userName" to username, "password" to password)
"authentication"("userName" to username, "password" to password) }
} }
} }
@@ -112,6 +115,10 @@ open class PublishedKotlinModule : Plugin<Project> {
} }
} }
} }
doFirst {
repository.url = repoUrl
}
} }
val install = if (tasks.names.contains("install")) tasks.getByName("install") as Upload val install = if (tasks.names.contains("install")) tasks.getByName("install") as Upload
+1 -1
View File
@@ -105,7 +105,7 @@ task preparePublication {
String sonatypeSnapshotsUrl = (isSonatypePublish && !isRelease) ? "https://oss.sonatype.org/content/repositories/snapshots/" : null String sonatypeSnapshotsUrl = (isSonatypePublish && !isRelease) ? "https://oss.sonatype.org/content/repositories/snapshots/" : null
ext.repoUrl = properties["deployRepoUrl"] ?: sonatypeSnapshotsUrl ?: properties["deploy-url"] ?: "file://${rootProject.buildDir}/repo" ext.repoUrl = properties["deployRepoUrl"] ?: sonatypeSnapshotsUrl ?: properties["deploy-url"] ?: "file://${rootProject.buildDir}/repo".toString()
ext.username = properties["deployRepoUsername"] ?: properties["kotlin.${repoProvider}.user"] ext.username = properties["deployRepoUsername"] ?: properties["kotlin.${repoProvider}.user"]
ext.password = properties["deployRepoPassword"] ?: properties["kotlin.${repoProvider}.password"] ext.password = properties["deployRepoPassword"] ?: properties["kotlin.${repoProvider}.password"]
+1 -1
View File
@@ -30,7 +30,7 @@ preparePublication {
} }
def repoId = rootNode.data.stagedRepositoryId.text() def repoId = rootNode.data.stagedRepositoryId.text()
ext.repoUrl = "http://oss.sonatype.org/service/local/staging/deployByRepositoryId/$repoId/" ext.repoUrl = "http://oss.sonatype.org/service/local/staging/deployByRepositoryId/$repoId/".toString()
println "##teamcity[setParameter name='system.deploy-url' value='${repoUrl}']" println "##teamcity[setParameter name='system.deploy-url' value='${repoUrl}']"
} }
} }