From c8e6de43777cd74f60ba34dd439c2da3e24a7d47 Mon Sep 17 00:00:00 2001 From: dgelessus <dgelessus@users.noreply.github.com> Date: Wed, 4 Oct 2023 18:13:17 +0200 Subject: [PATCH] Switch to java-library and maven-publish plugins --- .gitlab-ci.yml | 2 +- build.gradle | 108 ++++++++++++++++++++++--------------------------- 2 files changed, 50 insertions(+), 60 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 302dc3c..e464302 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -14,6 +14,6 @@ publish: - openssl aes-256-cbc -pass "env:ENCRYPTION_PASSWORD" -d -a -md md5 -in gradle.properties.enc -out gradle.properties - openssl aes-256-cbc -pass "env:ENCRYPTION_PASSWORD" -d -a -md md5 -in pubring.gpg.enc -out pubring.gpg - openssl aes-256-cbc -pass "env:ENCRYPTION_PASSWORD" -d -a -md md5 -in secring.gpg.enc -out secring.gpg - - ./gradlew ${GRADLE_OPTIONS} uploadArchives + - ./gradlew ${GRADLE_OPTIONS} publish only: - master@general/stups/rodin_eventb_ast diff --git a/build.gradle b/build.gradle index f129480..d1c598c 100644 --- a/build.gradle +++ b/build.gradle @@ -1,13 +1,15 @@ plugins { id "eclipse" - id "java" - id "maven" + id "java-library" + id "maven-publish" + id "signing" } sourceCompatibility = '1.7' project.version = '3.2.1-SNAPSHOT' project.group = 'de.hhu.stups' +final isSnapshot = project.version.endsWith("-SNAPSHOT") sourceSets { main { @@ -74,6 +76,10 @@ index e71bf08..0977da1 100644 } } +java { + withSourcesJar() + withJavadocJar() +} compileJava { dependsOn << 'tom' @@ -87,73 +93,57 @@ clean { delete "src/org/eventb/internal/core/typecheck/TypeUnifier.java" } -if (project.hasProperty('ossrhUsername') && project.hasProperty('ossrhPassword')) { - println "Configured upload task" - - apply plugin: 'signing' - - task javadocJar(type: Jar) { - classifier = 'javadoc' - from javadoc - } - - task sourcesJar(type: Jar) { - classifier = 'sources' - from sourceSets.main.allSource - } - - artifacts { - archives javadocJar, sourcesJar - } - - ext."signing.secretKeyRingFile" = rootProject.file("secring.gpg").absolutePath - - signing { - sign configurations.archives - } +publishing { + publications { + mavenJava(MavenPublication) { + from components.java - uploadArchives { - repositories { - mavenDeployer { - beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) } + pom { + name = "Rodin EventB AST" + description = "The AST library extracted from the Rodin Platform." + url = "https://github.com/hhu-stups/rodin-ast" - repository(url: "https://oss.sonatype.org/service/local/staging/deploy/maven2/") { - authentication(userName: ossrhUsername, password: ossrhPassword) + licenses { + license { + name = "Eclipse Public License, V 1.0" + url = "https://www.eclipse.org/legal/epl-v10.html" + } } - snapshotRepository(url: "https://oss.sonatype.org/content/repositories/snapshots/") { - authentication(userName: ossrhUsername, password: ossrhPassword) + scm { + connection = "scm:git:git://github.com/hhu-stups/rodin-ast.git" + developerConnection = "scm:git:git@github.com:hhu-stups/rodin-ast.git" + url = "https://github.com/hhu-stups/rodin-ast" } - pom.project { - name 'Rodin EventB AST' - packaging 'jar' - // optionally artifactId can be defined here - description 'The AST library extracted from the Rodin Platform.' - url 'https://github.com/hhu-stups/rodin-ast' - - licenses { - license { - name 'Eclipse Public License, V 1.0' - url 'https://www.eclipse.org/legal/epl-v10.html' - } - } - - scm { - connection 'scm:git:git://github.com/hhu-stups/rodin-ast.git' - developerConnection 'scm:git:git@github.com:hhu-stups/rodin-ast.git' - url 'https://github.com/hhu-stups/rodin-ast' + developers { + developer { + id = "bendisposto" + name = "Jens Bendisposto" + email = "jens@bendisposto.de" } + } + } + } + } - developers { - developer { - id 'bendisposto' - name 'Jens Bendisposto' - email 'jens@bendisposto.de' - } - } + repositories { + maven { + final releasesRepoUrl = "https://oss.sonatype.org/service/local/staging/deploy/maven2" + final snapshotsRepoUrl = "https://oss.sonatype.org/content/repositories/snapshots" + url isSnapshot ? snapshotsRepoUrl : releasesRepoUrl + if (project.hasProperty("ossrhUsername") && project.hasProperty("ossrhPassword")) { + credentials { + username project.ossrhUsername + password project.ossrhPassword } } } } } + +ext."signing.secretKeyRingFile" = rootProject.file("secring.gpg").absolutePath + +signing { + sign publishing.publications.mavenJava +} -- GitLab