@@ -4,6 +4,7 @@ plugins {
44 idea
55 id(" org.jetbrains.kotlinx.kover" )
66 buildsrc.convention.base
7+ id(" com.gradleup.nmcp.aggregation" )
78}
89
910
1819 excludeGeneratedGradleDsl(layout)
1920 excludeDirs = excludeDirs + layout.files(
2021 " .idea" ,
22+ " .kotlin" ,
23+ " buildSrc/.kotlin" ,
2124 " gradle/kotlin-js-store" ,
2225 " gradle/wrapper" ,
2326 " site/.docusaurus" ,
@@ -35,3 +38,39 @@ val projectVersion by tasks.registering {
3538 logger.quiet(" ${version.orNull} " )
3639 }
3740}
41+
42+ nmcpAggregation {
43+ centralPortal {
44+ username = providers.gradleProperty(" dev.adamko.kxstsgen.mavenCentralUsername" )
45+ .orElse(providers.environmentVariable(" MAVEN_SONATYPE_USERNAME" ))
46+ password = providers.gradleProperty(" dev.adamko.kxstsgen.mavenCentralPassword" )
47+ .orElse(providers.environmentVariable(" MAVEN_SONATYPE_PASSWORD" ))
48+
49+ // publish manually from the portal
50+ publishingType = " USER_MANAGED"
51+ }
52+ }
53+
54+ dependencies {
55+ nmcpAggregation(projects.modules.kxsTsGenCore)
56+ nmcpAggregation(projects.modules.versionsPlatform)
57+ }
58+
59+ val isReleaseVersion: Provider <Boolean > =
60+ providers.provider { ! project.version.toString().endsWith(" -SNAPSHOT" ) }
61+
62+ tasks.nmcpPublishAggregationToCentralPortal {
63+ val isReleaseVersion = isReleaseVersion
64+ onlyIf(" is release version" ) { _ -> isReleaseVersion.get() }
65+ }
66+
67+ tasks.nmcpPublishAggregationToCentralPortalSnapshots {
68+ val isReleaseVersion = isReleaseVersion
69+ onlyIf(" is snapshot version" ) { _ -> ! isReleaseVersion.get() }
70+ }
71+
72+ tasks.register(" nmcpPublish" ) {
73+ group = PublishingPlugin .PUBLISH_TASK_GROUP
74+ dependsOn(tasks.nmcpPublishAggregationToCentralPortal)
75+ dependsOn(tasks.nmcpPublishAggregationToCentralPortalSnapshots)
76+ }
0 commit comments