|
1 | 1 | // Shared publishing configuration for Vanniktech Maven Publish plugin |
2 | 2 | // Secrets are loaded from ~/.gradle/gradle.properties (see README for required keys) |
3 | 3 |
|
4 | | -// Get version from PUBLISH_VERSION property or fall back to navEntryScopeVersion |
5 | | -val publishVersion = providers.gradleProperty("PUBLISH_VERSION").orNull |
6 | | - ?: project.property("navEntryScopeVersion") as String |
| 4 | +// Version must be provided via -PPUBLISH_VERSION when publishing to Maven Central |
| 5 | +val isMavenCentralPublish = gradle.startParameter.taskNames.any { |
| 6 | + it.contains("publish", ignoreCase = true) && !it.contains("Local", ignoreCase = true) |
| 7 | +} |
| 8 | +val publishVersion = if (isMavenCentralPublish) { |
| 9 | + providers.gradleProperty("PUBLISH_VERSION").orNull |
| 10 | + ?: error("PUBLISH_VERSION property is required. Use -PPUBLISH_VERSION=x.y.z-SNAPSHOT") |
| 11 | +} else { |
| 12 | + providers.gradleProperty("PUBLISH_VERSION").orNull ?: "LOCAL" |
| 13 | +} |
7 | 14 | project.extra.set("publishVersion", publishVersion) |
8 | 15 |
|
| 16 | +// Check if this is a SNAPSHOT version |
| 17 | +val isSnapshot = publishVersion.endsWith("-SNAPSHOT") |
| 18 | +project.extra.set("isSnapshot", isSnapshot) |
| 19 | + |
9 | 20 | // Support both in-memory signing (CI) and file-based signing (local) |
10 | 21 | val hasSigningCredentials = project.findProperty("signingInMemoryKey") != null |
11 | 22 | || project.findProperty("signing.secretKeyRingFile") != null |
12 | 23 | project.extra.set("hasSigningCredentials", hasSigningCredentials) |
13 | 24 |
|
| 25 | + |
14 | 26 | // Shared POM configuration function - available via extra properties |
15 | 27 | project.extra.set("configurePom") { pom: org.gradle.api.publish.maven.MavenPom -> |
16 | 28 | pom.apply { |
|
0 commit comments