gradle: switch to 'maven-publish' plugin

It is time to switch from the original, depreacted publishing
mechanism based on the 'maven' plugin, to the new mechanism.
This commit is contained in:
Florian Schmaus 2020-04-14 15:19:31 +02:00
parent 48d04521df
commit f0583a6706
1 changed files with 35 additions and 39 deletions

View File

@ -58,6 +58,7 @@ allprojects {
rootConfigDir = new File(rootDir, 'config')
gitCommit = getGitCommit()
builtDate = (new SimpleDateFormat("yyyy-MM-dd")).format(new Date())
isContinuousIntegrationEnvironment = Boolean.parseBoolean(System.getenv('CI'))
isReleaseVersion = !isSnapshot
signingRequired = isReleaseVersion
sonatypeCredentialsAvailable = project.hasProperty('sonatypeUsername') && project.hasProperty('sonatypePassword')
@ -94,7 +95,7 @@ allprojects {
}
subprojects {
apply plugin: 'maven'
apply plugin: 'maven-publish'
apply plugin: 'signing'
task sourcesJar(type: Jar, dependsOn: classes) {
@ -105,69 +106,64 @@ subprojects {
classifier = 'javadoc'
from javadoc.destinationDir
}
task testJar(type: Jar, dependsOn: testClasses) {
task testsJar(type: Jar, dependsOn: testClasses) {
classifier = 'tests'
from sourceSets.test.output
}
artifacts {
archives sourcesJar
archives javadocJar
archives testJar
}
uploadArchives {
repositories {
mavenDeployer {
if (signingRequired) {
beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) }
}
repository(url: project.sonatypeStagingUrl) {
if (sonatypeCredentialsAvailable) {
authentication(userName: sonatypeUsername, password: sonatypePassword)
}
}
snapshotRepository(url: project.sonatypeSnapshotUrl) {
if (sonatypeCredentialsAvailable) {
authentication(userName: sonatypeUsername, password: sonatypePassword)
}
}
pom.project {
name 'PGPainless'
publishing {
publications {
mavenJava(MavenPublication) {
from components.java
artifact sourcesJar
artifact javadocJar
artifact testsJar
pom {
name = 'PGPainless'
description 'Simple to use OpenPGP API for Java based on Bouncycastle'
url 'https://github.com/pgpainless/pgpainless'
inceptionYear '2018'
url = 'https://github.com/pgpainless/pgpainless'
inceptionYear = '2018'
scm {
url 'https://github.com/pgpainless/pgpainless'
connection 'scm:https://github.com/pgpainless/pgpainless'
developerConnection 'scm:git://github.com/pgpainless/pgpainless.git'
url = 'https://github.com/pgpainless/pgpainless'
connection = 'scm:https://github.com/pgpainless/pgpainless'
developerConnection = 'scm:git://github.com/pgpainless/pgpainless.git'
}
licenses {
license {
name 'The Apache Software License, Version 2.0'
url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
distribution 'repo'
name = 'The Apache Software License, Version 2.0'
url = 'http://www.apache.org/licenses/LICENSE-2.0.txt'
distribution = 'repo'
}
}
developers {
developer {
id 'vanitasvitae'
name 'Paul Schaub'
email 'vanitasvitae@fsfe.org'
id = 'vanitasvitae'
name = 'Paul Schaub'
email = 'vanitasvitae@fsfe.org'
}
}
}
}
}
repositories {
if (sonatypeCredentialsAvailable) {
maven {
url isSnapshot ? sonatypeSnapshotUrl : sonatypeStagingUrl
credentials {
username = sonatypeUsername
password = sonatypePassword
}
}
}
}
}
signing {
required { signingRequired }
sign configurations.archives
sign publishing.publications.mavenJava
}
}