Skip to content

Commit bdbc4fa

Browse files
committed
Publish with nexus-publish-plugin
1 parent cf115fa commit bdbc4fa

File tree

5 files changed

+23
-21
lines changed

5 files changed

+23
-21
lines changed

build.gradle.kts

+2-6
Original file line numberDiff line numberDiff line change
@@ -115,18 +115,14 @@ tasks.register("publishLocal") {
115115
)
116116
}
117117

118-
val publishToSonatype by tasks.registering {
119-
group = "publishing"
120-
}
121-
122118
tasks.named("closeRepository") {
123-
mustRunAfter(publishToSonatype)
119+
mustRunAfter("publishToSonatype")
124120
}
125121

126122
tasks.register("publishToSonatypeAndRelease") {
127123
group = "publishing"
128124

129-
dependsOn(publishToSonatype, "closeAndReleaseRepository")
125+
dependsOn("publishToSonatype", "closeAndReleaseRepository")
130126
}
131127

132128
tasks.register("publishToPluginPortal") {

jupyter-lib/api-gradle-plugin/src/main/kotlin/org/jetbrains/kotlinx/jupyter/api/plugin/ApiGradlePlugin.kt

-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ package org.jetbrains.kotlinx.jupyter.api.plugin
33
import org.gradle.api.Plugin
44
import org.gradle.api.Project
55
import org.gradle.kotlin.dsl.invoke
6-
import org.gradle.kotlin.dsl.maven
76
import org.gradle.kotlin.dsl.register
87
import org.gradle.kotlin.dsl.repositories
98
import org.jetbrains.kotlin.gradle.internal.Kapt3GradleSubplugin

kotlin-jupyter-publish/src/main/kotlin/org/jetbrains/kotlinx/jupyter/plugin/ApiPublishGradlePlugin.kt

+2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package org.jetbrains.kotlinx.jupyter.plugin
22

3+
import de.marcphilipp.gradle.nexus.NexusPublishPlugin
34
import org.gradle.api.Plugin
45
import org.gradle.api.Project
56
import org.gradle.api.publish.maven.plugins.MavenPublishPlugin
@@ -11,6 +12,7 @@ class ApiPublishGradlePlugin : Plugin<Project> {
1112
target.pluginManager.run {
1213
apply(DokkaPlugin::class.java)
1314
apply(MavenPublishPlugin::class.java)
15+
apply(NexusPublishPlugin::class.java)
1416
apply(SigningPlugin::class.java)
1517
}
1618
}

kotlin-jupyter-publish/src/main/kotlin/org/jetbrains/kotlinx/jupyter/publishing/nexusUtil.kt

+16-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package org.jetbrains.kotlinx.jupyter.publishing
22

3+
import de.marcphilipp.gradle.nexus.NexusPublishExtension
4+
import de.marcphilipp.gradle.nexus.NexusPublishPlugin
35
import io.codearte.gradle.nexus.NexusStagingExtension
46
import io.codearte.gradle.nexus.NexusStagingPlugin
57
import org.gradle.api.Project
@@ -15,16 +17,29 @@ fun getNexusPassword(): String? {
1517
return System.getenv("SONATYPE_PASSWORD")
1618
}
1719

20+
fun Project.configureNexusPublish() {
21+
extensions.configure<NexusPublishExtension>("nexusPublishing") {
22+
repositories {
23+
sonatype {
24+
username.set(getNexusUser())
25+
password.set(getNexusPassword())
26+
}
27+
}
28+
}
29+
}
30+
1831
fun Project.applyNexusPlugin() {
1932
pluginManager.run {
2033
apply(NexusStagingPlugin::class.java)
34+
apply(NexusPublishPlugin::class.java)
2135
}
2236

2337
extensions.configure<NexusStagingExtension>("nexusStaging") {
2438
username = getNexusUser()
2539
password = getNexusPassword()
2640
packageGroup = NEXUS_PACKAGE_GROUP
2741
repositoryDescription = "kotlin-jupyter project, v. ${project.version}"
28-
// serverUrl = NEXUS_REPO_URL
2942
}
43+
44+
configureNexusPublish()
3045
}

kotlin-jupyter-publish/src/main/kotlin/org/jetbrains/kotlinx/jupyter/publishing/publication.kt

+3-13
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ import org.gradle.kotlin.dsl.invoke
1111
import org.gradle.plugins.signing.SigningExtension
1212
import org.jetbrains.dokka.gradle.DokkaTask
1313
import java.io.File
14-
import java.net.URI
1514
import java.nio.file.Path
1615

1716
fun Project.addPublication(configuration: ArtifactPublication.() -> Unit) {
@@ -21,8 +20,6 @@ fun Project.addPublication(configuration: ArtifactPublication.() -> Unit) {
2120
val mainSourceSet = sourceSets.named("main").get()
2221
val publicationName = settings.publicationName!!
2322

24-
val sonatypeUser = getNexusUser()
25-
val sonatypePassword = getNexusPassword()
2623
val signingPrivateKey = System.getenv("SIGN_KEY_PRIVATE")
2724
val signingKey = System.getenv("SIGN_KEY_ID")
2825
val signingKeyPassphrase = System.getenv("SIGN_KEY_PASSPHRASE")
@@ -108,19 +105,11 @@ fun Project.addPublication(configuration: ArtifactPublication.() -> Unit) {
108105
url = it.toUri()
109106
}
110107
}
111-
112-
maven {
113-
name = "Sonatype"
114-
url = URI(NEXUS_REPO_URL)
115-
credentials {
116-
username = sonatypeUser
117-
password = sonatypePassword
118-
}
119-
}
120108
}
121109
}
122110

123111
val thisProjectName = project.name
112+
val thisProject = project
124113

125114
if (rootProject.findProperty("isMainProject") == true) {
126115
rootProject.tasks {
@@ -129,8 +118,9 @@ fun Project.addPublication(configuration: ArtifactPublication.() -> Unit) {
129118
}
130119

131120
if (settings.publishToSonatype) {
121+
thisProject.configureNexusPublish()
132122
named("publishToSonatype") {
133-
dependsOn(":$thisProjectName:publishAllPublicationsToSonatypeRepository")
123+
dependsOn(":$thisProjectName:publishToSonatype")
134124
}
135125
}
136126
}

0 commit comments

Comments
 (0)