mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2025-12-20 09:16:01 +08:00
150 lines
4.9 KiB
Groovy
150 lines
4.9 KiB
Groovy
|
|
// JReleaser config for release builds to Central Portal
|
|
if (project.hasProperty('RELEASE')) {
|
|
apply plugin: 'org.jreleaser'
|
|
|
|
jreleaser {
|
|
deploy {
|
|
maven {
|
|
mavenCentral {
|
|
sonatype {
|
|
active = 'ALWAYS'
|
|
username = getRepositoryUsername()
|
|
password = getRepositoryPassword()
|
|
url = 'https://central.sonatype.com/api/v1/publisher'
|
|
stagingRepository("${buildDir}/staging-deploy")
|
|
sign = false
|
|
verifyPom = false
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
project("spine-libgdx") {
|
|
apply plugin: "java-library"
|
|
apply plugin: "maven-publish"
|
|
apply plugin: "signing"
|
|
|
|
dependencies {
|
|
implementation "com.badlogicgames.gdx:gdx:$libgdxVersion"
|
|
}
|
|
|
|
tasks.register("sourceJar", Jar) {
|
|
archiveClassifier.set("sources")
|
|
from(sourceSets.main.allJava)
|
|
}
|
|
|
|
tasks.javadoc {
|
|
failOnError = false
|
|
options.addStringOption('Xdoclint:none', '-quiet')
|
|
}
|
|
|
|
tasks.register("javadocJar", Jar) {
|
|
dependsOn javadoc
|
|
archiveClassifier.set("javadoc")
|
|
from(javadoc.destinationDir)
|
|
}
|
|
|
|
afterEvaluate {
|
|
publishing {
|
|
publications {
|
|
create("release", MavenPublication) {
|
|
from(components.java)
|
|
artifact(tasks.getByName("sourceJar"))
|
|
artifact(tasks.getByName("javadocJar"))
|
|
|
|
groupId = "com.esotericsoftware.spine"
|
|
artifactId = "spine-libgdx"
|
|
version = project.version
|
|
|
|
pom {
|
|
packaging = "jar"
|
|
name = POM_NAME
|
|
if(!POM_DESCRIPTION.isEmpty())
|
|
description = POM_DESCRIPTION
|
|
url = POM_URL
|
|
licenses {
|
|
license {
|
|
name = POM_LICENCE_NAME
|
|
url = POM_LICENCE_URL
|
|
distribution = POM_LICENCE_DIST
|
|
}
|
|
}
|
|
developers {
|
|
developer {
|
|
name.set("Esoteric Software")
|
|
email.set("contact@esotericsoftware.com")
|
|
}
|
|
}
|
|
scm {
|
|
connection = POM_SCM_CONNECTION
|
|
developerConnection = POM_SCM_DEV_CONNECTION
|
|
url = POM_SCM_URL
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
repositories {
|
|
maven {
|
|
name = "SonaType"
|
|
url = project.version.endsWith("-SNAPSHOT")
|
|
? getSnapshotRepositoryUrl()
|
|
// If release build, dump artifacts to root project build/staging-deploy folder for consumption by jreleaser
|
|
: rootProject.layout.buildDirectory.dir('staging-deploy')
|
|
|
|
if (project.version.endsWith("-SNAPSHOT") && (getRepositoryUsername() || getRepositoryPassword())) {
|
|
credentials {
|
|
username = getRepositoryUsername()
|
|
password = getRepositoryPassword()
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
signing {
|
|
useGpgCmd()
|
|
sign(publishing.publications["release"])
|
|
}
|
|
|
|
// Simply using "required" in signing block doesn't work because taskGraph isn't ready yet.
|
|
gradle.taskGraph.whenReady {
|
|
tasks.withType(Sign) {
|
|
onlyIf { !project.version.endsWith("-SNAPSHOT") }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// JReleaser config for release builds to Central Portal
|
|
if (project.hasProperty('RELEASE')) {
|
|
apply plugin: 'org.jreleaser'
|
|
|
|
jreleaser {
|
|
deploy {
|
|
maven {
|
|
mavenCentral {
|
|
sonatype {
|
|
active = 'ALWAYS'
|
|
username = getRepositoryUsername()
|
|
password = getRepositoryPassword()
|
|
url = 'https://central.sonatype.com/api/v1/publisher'
|
|
stagingRepository("${rootProject.buildDir}/staging-deploy")
|
|
sign = false
|
|
verifyPom = false
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// For release builds, create a task that depends on publishing and finalizes with jreleaser
|
|
tasks.register('publishRelease') {
|
|
dependsOn tasks.withType(PublishToMavenRepository)
|
|
finalizedBy tasks.named('jreleaserDeploy')
|
|
}
|
|
}
|