diff --git a/libraries/build.gradle b/libraries/build.gradle index 977a775d6fe..cad9fe50239 100644 --- a/libraries/build.gradle +++ b/libraries/build.gradle @@ -1,4 +1,3 @@ - buildscript { ext.kotlin_version = "1.1-SNAPSHOT" ext.kotlin_language_version = "1.1" @@ -17,14 +16,12 @@ ext.JDK_17 = System.getenv("JDK_17") ext.JDK_18 = System.getenv("JDK_18") ext.bootstrapCompilerFile = project.file("${rootDir}/../dist/kotlinc/lib/kotlin-compiler.jar") -allprojects { +allprojects { group = 'org.jetbrains.kotlin' version = "$kotlin_version" } subprojects { - apply plugin: 'maven' - apply plugin: 'signing' repositories { mavenCentral() @@ -47,25 +44,6 @@ subprojects { classifier = 'javadoc' } - signing { - required { project.ext.has('signing.keyId') } - sign configurations.archives - } - - uploadArchives { - repositories { - mavenDeployer { - repository(url: "file://${rootDir}/localRepo") - uniqueVersion = false - pom.version = kotlin_version - pom.project { - groupId = project.group - artifactId = project.name - version = project.version - } - } - } - } } static def configureJvmProject(Project project) { @@ -108,6 +86,64 @@ static def manifestAttributes(Manifest manifest, Project project, String compone } } +static def configurePublishing(Project project) { + project.configure(project) { + apply plugin: 'maven' + apply plugin: 'signing' + + signing { + required { (project.properties["signingRequired"] ?: false) } + sign configurations.archives + } + + signArchives { + enabled signing.required + } + + uploadArchives { + repositories { + mavenDeployer { + beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) } + repository(url: project.properties["deployRepoUrl"] ?: "file://${rootProject.buildDir}/repo") { + authentication( + userName: project.properties["deployRepoUsername"], + password: project.properties["deployRepoPassword"] + ) + } + pom.project { + name "${project.group}:${project.name}" + packaging 'jar' + // optionally artifactId can be defined here + description project.description + url 'https://kotlinlang.org/' + licenses { + license { + name 'The Apache License, Version 2.0' + url 'http://www.apache.org/licenses/LICENSE-2.0.txt' + } + } + scm { + url 'https://github.com/JetBrains/kotlin' + connection 'scm:git:https://github.com/JetBrains/kotlin.git' + developerConnection 'scm:git:https://github.com/JetBrains/kotlin.git' + } + developers { + developer { + name 'Kotlin Team' + organization = 'JetBrains' + organizationUrl 'https://www.jetbrains.com' + } + } + } + } + } + } + + task publish(dependsOn: uploadArchives) + } + +} + def createPreprocessorTask(Project project, def name, def sourceDir, def targetDir, def profile = "JS") { return project.tasks.create("preprocessSources$name", JavaExec) { inputs.dir(sourceDir) diff --git a/libraries/kotlin.test/common/build.gradle b/libraries/kotlin.test/common/build.gradle index a8752466dc8..98a3fac2dd0 100644 --- a/libraries/kotlin.test/common/build.gradle +++ b/libraries/kotlin.test/common/build.gradle @@ -2,6 +2,9 @@ description = 'Kotlin Test Common' apply plugin: 'kotlin-platform-common' +configurePublishing(project) + + dependencies { compile project(':kotlin-stdlib-common') } diff --git a/libraries/kotlin.test/js/build.gradle b/libraries/kotlin.test/js/build.gradle index bcb92790ebb..fd46c781419 100644 --- a/libraries/kotlin.test/js/build.gradle +++ b/libraries/kotlin.test/js/build.gradle @@ -2,6 +2,8 @@ description = 'Kotlin Test for JS' apply plugin: 'kotlin-platform-js' +configurePublishing(project) + dependencies { implement project(':kotlin-test:kotlin-test-common') compile project(':kotlin-stdlib-js') diff --git a/libraries/kotlin.test/junit/build.gradle b/libraries/kotlin.test/junit/build.gradle index a78953a38df..c79cedd9766 100644 --- a/libraries/kotlin.test/junit/build.gradle +++ b/libraries/kotlin.test/junit/build.gradle @@ -3,6 +3,8 @@ description = 'Kotlin Test JUnit' apply plugin: 'kotlin' configureJvmProject(project) +configurePublishing(project) + dependencies { compile project(':kotlin-test:kotlin-test-jvm') diff --git a/libraries/kotlin.test/jvm/build.gradle b/libraries/kotlin.test/jvm/build.gradle index f431e5447fb..3f5db80dfe0 100644 --- a/libraries/kotlin.test/jvm/build.gradle +++ b/libraries/kotlin.test/jvm/build.gradle @@ -4,6 +4,7 @@ description = 'Kotlin Test' apply plugin: 'kotlin-platform-jvm' configureJvmProject(project) +configurePublishing(project) dependencies { implement project(':kotlin-test:kotlin-test-common') diff --git a/libraries/stdlib/build.gradle b/libraries/stdlib/build.gradle index ccab3ea0628..4afda7b2967 100644 --- a/libraries/stdlib/build.gradle +++ b/libraries/stdlib/build.gradle @@ -3,6 +3,7 @@ description = 'Kotlin Standard Library' apply plugin: 'kotlin' configureJvmProject(project) +configurePublishing(project) sourceSets { builtins { diff --git a/libraries/stdlib/common/build.gradle b/libraries/stdlib/common/build.gradle index e641ec6c8c5..84759eb3530 100644 --- a/libraries/stdlib/common/build.gradle +++ b/libraries/stdlib/common/build.gradle @@ -2,6 +2,8 @@ description = 'Kotlin Common Standard Library' apply plugin: 'kotlin-platform-common' +configurePublishing(project) + ext.commonSrcDir = "${buildDir}/common-sources" sourceSets { diff --git a/libraries/stdlib/jre7/build.gradle b/libraries/stdlib/jre7/build.gradle index 866a51dd11a..ef66af9f61c 100644 --- a/libraries/stdlib/jre7/build.gradle +++ b/libraries/stdlib/jre7/build.gradle @@ -3,6 +3,7 @@ description = 'Kotlin Standard Library JRE 7 extension' apply plugin: 'kotlin' configureJvmProject(project) +configurePublishing(project) dependencies { compile project(':kotlin-stdlib') diff --git a/libraries/stdlib/jre8/build.gradle b/libraries/stdlib/jre8/build.gradle index 804711b4ced..7cb286a19c4 100644 --- a/libraries/stdlib/jre8/build.gradle +++ b/libraries/stdlib/jre8/build.gradle @@ -3,6 +3,7 @@ description = 'Kotlin Standard Library JRE 8 extension' apply plugin: 'kotlin' configureJvmProject(project) +configurePublishing(project) dependencies { compile project(':kotlin-stdlib') diff --git a/libraries/stdlib/js/build.gradle b/libraries/stdlib/js/build.gradle index bec32856998..57871187973 100644 --- a/libraries/stdlib/js/build.gradle +++ b/libraries/stdlib/js/build.gradle @@ -6,6 +6,9 @@ description = 'Kotlin Standard Library for JS' apply plugin: 'kotlin2js' +configurePublishing(project) + + def builtinsSrcDir = "${buildDir}/builtin-sources" def commonSrcDir = "${buildDir}/common-sources" def commonTestSrcDir = "${buildDir}/common-test-sources" diff --git a/libraries/tools/kotlin-reflect/build.gradle b/libraries/tools/kotlin-reflect/build.gradle index 2dc0f9a102a..8dc452a50da 100644 --- a/libraries/tools/kotlin-reflect/build.gradle +++ b/libraries/tools/kotlin-reflect/build.gradle @@ -16,6 +16,7 @@ apply plugin: 'com.github.johnrengelman.shadow' apply plugin: 'kotlin' configureJvmProject(project) +configurePublishing(project) def core = "${rootDir}/../core" @@ -99,7 +100,7 @@ task reflectShadowJar(type: ShadowJar) { createScriptTask(project, "stripMetadata") { dependsOn reflectShadowJar def inputJar = reflectShadowJar.archivePath - def outputJar = "${buildDir}/libs/kotlin-reflect-stripped.jar" + def outputJar = "${libsDir}/kotlin-reflect-stripped.jar" inputs.file(inputJar) outputs.file(outputJar) args += [ @@ -113,7 +114,7 @@ createScriptTask(project, "stripMetadata") { def mainArchiveName = "${archivesBaseName}-${project.version}.jar" -def outputJarPath = "${buildDir}/libs/${mainArchiveName}" +def outputJarPath = "${libsDir}/${mainArchiveName}" def rtJar = ['jre/lib/rt.jar', '../Classes/classes.jar'].collect { new File(JDK_16, it) }.find { it.isFile() } task proguard(type: proguard.gradle.ProGuardTask) { diff --git a/libraries/tools/protobuf-lite/build.gradle b/libraries/tools/protobuf-lite/build.gradle index a79d895bf0c..0faccce3e21 100644 --- a/libraries/tools/protobuf-lite/build.gradle +++ b/libraries/tools/protobuf-lite/build.gradle @@ -10,14 +10,15 @@ buildscript { } } +apply plugin: 'base' apply plugin: 'com.github.johnrengelman.shadow' - def protobufVersion = "2.6.1" -def outputJarPath = "$buildDir/libs/${archivesBaseName}-${protobufVersion}.jar" - version = protobufVersion +def outputJarPath = "${libsDir}/${archivesBaseName}-${protobufVersion}.jar" + + configurations { protobuf protobufSrc diff --git a/libraries/tools/runtime/build.gradle b/libraries/tools/runtime/build.gradle index b8775de4fa2..c59d62f61cb 100644 --- a/libraries/tools/runtime/build.gradle +++ b/libraries/tools/runtime/build.gradle @@ -3,6 +3,7 @@ description 'Kotlin Runtime (deprecated, use koltin-stdlib artifact instead)' apply plugin: 'kotlin' configureJvmProject(project) +configurePublishing(project) dependencies { compile group: 'org.jetbrains', name: 'annotations', version:'13.0' diff --git a/libraries/tools/script-runtime/build.gradle b/libraries/tools/script-runtime/build.gradle index 48657cb8cfa..98f29ef7651 100644 --- a/libraries/tools/script-runtime/build.gradle +++ b/libraries/tools/script-runtime/build.gradle @@ -3,6 +3,7 @@ description 'Kotlin Script Runtime' apply plugin: 'kotlin' configureJvmProject(project) +configurePublishing(project) dependencies { compileOnly project(':kotlin-stdlib')