From 2264dd6bfe22b68a1bcad4a146436c0b8319e488 Mon Sep 17 00:00:00 2001 From: Jason Han Date: Tue, 16 Feb 2021 09:01:10 -0800 Subject: [PATCH 01/10] Add configuration for MavenCentral sonatype repository upload. --- build.gradle | 80 ++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 77 insertions(+), 3 deletions(-) diff --git a/build.gradle b/build.gradle index 779f1045a..c24824613 100644 --- a/build.gradle +++ b/build.gradle @@ -59,19 +59,32 @@ subprojects { project.sourceCompatibility = '10' project.targetCompatibility = '10' } - version = rootProject.version apply plugin: 'java-library' apply plugin: 'maven-publish' apply plugin: 'io.spring.dependency-management' apply plugin: "com.jfrog.artifactory" apply plugin: 'com.jfrog.bintray' + apply plugin: 'maven' + apply plugin: 'signing' + + group = "org.openmbee.mms" + archivesBaseName = "mms-" + project.name + version = rootProject.version Map commonDependencies = rootProject.ext.commonDependencies + task javadocJar(type: Jar) { + from javadoc + } + + task sourcesJar(type: Jar) { + from sourceSets.main.allSource + } + java { - //withJavadocJar() - //withSourcesJar() + withJavadocJar() + withSourcesJar() } javadoc { @@ -79,6 +92,15 @@ subprojects { options.addBooleanOption('html5', true) } } + + artifacts { + archives javadocJar, sourcesJar + } + + signing { + sign configurations.archives + } + //https://docs.gradle.org/current/userguide/publishing_maven.html publishing { publications { @@ -131,4 +153,56 @@ subprojects { vcsUrl = 'https://github.com/Open-MBEE/mms.git' } } + + uploadArchives { + repositories { + mavenDeployer { + beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) } + + repository(url: "https://oss.sonatype.org/service/local/staging/deploy/maven2/") { + authentication(userName: ossrhUsername, password: ossrhPassword) + } + + snapshotRepository(url: "https://oss.sonatype.org/content/repositories/snapshots/") { + authentication(userName: ossrhUsername, password: ossrhPassword) + } + + pom.project { + name 'mms-' + project.name + packaging 'jar' + // optionally artifactId can be defined here + description project.description + url 'http://github.com/OpenMBEE/mms' + + scm { + connection 'scm:git:https://github.com/Open-MBEE/mms.git' + developerConnection 'scm:git:https://github.com/Open-MBEE/mms.git' + url 'https://github.com/Open-MBEE/mms.git' + } + + licenses { + license { + name 'The Apache License, Version 2.0' + url 'http://www.apache.org/licenses/LICENSE-2.0.txt' + } + } + + developers { + developer { + id 'huijun' + name 'Jason Han' + } + developer { + id 'dlam' + name 'Doris Lam' + } + developer { + id 'ward' + name 'Ward Schweitzer' + } + } + } + } + } + } } \ No newline at end of file From c75bd72a82ae90ef5363a6db1d10a6accceb691a Mon Sep 17 00:00:00 2001 From: Jason Han Date: Tue, 16 Feb 2021 09:44:24 -0800 Subject: [PATCH 02/10] Add classifier --- build.gradle | 2 ++ 1 file changed, 2 insertions(+) diff --git a/build.gradle b/build.gradle index c24824613..367d92545 100644 --- a/build.gradle +++ b/build.gradle @@ -75,10 +75,12 @@ subprojects { Map commonDependencies = rootProject.ext.commonDependencies task javadocJar(type: Jar) { + archiveClassifier = "javadoc" from javadoc } task sourcesJar(type: Jar) { + archiveClassifier = "sources" from sourceSets.main.allSource } From 59e49b152446efbc54f07731172f133830c109ba Mon Sep 17 00:00:00 2001 From: Jason Han Date: Tue, 16 Feb 2021 13:26:17 -0800 Subject: [PATCH 03/10] Conditional sonatype deployment --- build.gradle | 78 +++++++++++++++++++++++++++------------------------- 1 file changed, 41 insertions(+), 37 deletions(-) diff --git a/build.gradle b/build.gradle index 367d92545..c509ba834 100644 --- a/build.gradle +++ b/build.gradle @@ -100,7 +100,9 @@ subprojects { } signing { - sign configurations.archives + if (project.hasProperty('signing.keyId') && project.hasProperty('signing.password') && project.hasProperty('signing.secretKeyRingFile')) { + sign configurations.archives + } } //https://docs.gradle.org/current/userguide/publishing_maven.html @@ -158,49 +160,51 @@ subprojects { uploadArchives { repositories { - mavenDeployer { - beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) } - - repository(url: "https://oss.sonatype.org/service/local/staging/deploy/maven2/") { - authentication(userName: ossrhUsername, password: ossrhPassword) - } - - snapshotRepository(url: "https://oss.sonatype.org/content/repositories/snapshots/") { - authentication(userName: ossrhUsername, password: ossrhPassword) - } + if (project.hasProperty('ossrhUsername') && project.hasProperty('ossrhPassword')) { + mavenDeployer { + beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) } - pom.project { - name 'mms-' + project.name - packaging 'jar' - // optionally artifactId can be defined here - description project.description - url 'http://github.com/OpenMBEE/mms' - - scm { - connection 'scm:git:https://github.com/Open-MBEE/mms.git' - developerConnection 'scm:git:https://github.com/Open-MBEE/mms.git' - url 'https://github.com/Open-MBEE/mms.git' + repository(url: "https://oss.sonatype.org/service/local/staging/deploy/maven2/") { + authentication(userName: ossrhUsername, password: ossrhPassword) } - licenses { - license { - name 'The Apache License, Version 2.0' - url 'http://www.apache.org/licenses/LICENSE-2.0.txt' - } + snapshotRepository(url: "https://oss.sonatype.org/content/repositories/snapshots/") { + authentication(userName: ossrhUsername, password: ossrhPassword) } - developers { - developer { - id 'huijun' - name 'Jason Han' + pom.project { + name 'mms-' + project.name + packaging 'jar' + // optionally artifactId can be defined here + description project.description + url 'http://github.com/OpenMBEE/mms' + + scm { + connection 'scm:git:https://github.com/Open-MBEE/mms.git' + developerConnection 'scm:git:https://github.com/Open-MBEE/mms.git' + url 'https://github.com/Open-MBEE/mms.git' } - developer { - id 'dlam' - name 'Doris Lam' + + licenses { + license { + name 'The Apache License, Version 2.0' + url 'http://www.apache.org/licenses/LICENSE-2.0.txt' + } } - developer { - id 'ward' - name 'Ward Schweitzer' + + developers { + developer { + id 'huijun' + name 'Jason Han' + } + developer { + id 'dlam' + name 'Doris Lam' + } + developer { + id 'ward' + name 'Ward Schweitzer' + } } } } From bce560d461092a13e048b1e2b2b2dec384788423 Mon Sep 17 00:00:00 2001 From: Jason Han Date: Tue, 16 Feb 2021 13:36:27 -0800 Subject: [PATCH 04/10] Fix new package name in Dockerfile --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 9d3830627..0cfff2c5c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,7 +3,7 @@ COPY . /mms WORKDIR /mms RUN ./gradlew --no-daemon bootJar -RUN cp /mms/example/build/libs/example*.jar /app.jar +RUN cp /mms/example/build/libs/mms-example*.jar /app.jar ENV JDK_JAVA_OPTIONS "-XX:MaxRAMPercentage=90.0" ENTRYPOINT ["java", "--add-opens", "java.base/java.lang=ALL-UNNAMED", "-jar", "/app.jar"] EXPOSE 8080 From 856cbf54aafb81eb16bd21fe419da8ddd18ec543 Mon Sep 17 00:00:00 2001 From: Jason Han Date: Tue, 16 Feb 2021 13:44:09 -0800 Subject: [PATCH 05/10] Find single file in Dockerfile --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 0cfff2c5c..cd7eaf6cc 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,7 +3,7 @@ COPY . /mms WORKDIR /mms RUN ./gradlew --no-daemon bootJar -RUN cp /mms/example/build/libs/mms-example*.jar /app.jar +RUN find . -type f -name mms-example-*.jar -not -iname '*javadoc*' -not -iname '*sources*' -exec cp '{}' '/app.jar' ';' ENV JDK_JAVA_OPTIONS "-XX:MaxRAMPercentage=90.0" ENTRYPOINT ["java", "--add-opens", "java.base/java.lang=ALL-UNNAMED", "-jar", "/app.jar"] EXPOSE 8080 From bc75833a52527e9354f350083cf75f70fc766048 Mon Sep 17 00:00:00 2001 From: Jason Han Date: Tue, 16 Feb 2021 14:18:09 -0800 Subject: [PATCH 06/10] Remove unneeded namespace in package names --- Dockerfile | 2 +- build.gradle | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index cd7eaf6cc..c1ee92baa 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,7 +3,7 @@ COPY . /mms WORKDIR /mms RUN ./gradlew --no-daemon bootJar -RUN find . -type f -name mms-example-*.jar -not -iname '*javadoc*' -not -iname '*sources*' -exec cp '{}' '/app.jar' ';' +RUN find . -type f -name example-*.jar -not -iname '*javadoc*' -not -iname '*sources*' -exec cp '{}' '/app.jar' ';' ENV JDK_JAVA_OPTIONS "-XX:MaxRAMPercentage=90.0" ENTRYPOINT ["java", "--add-opens", "java.base/java.lang=ALL-UNNAMED", "-jar", "/app.jar"] EXPOSE 8080 diff --git a/build.gradle b/build.gradle index c509ba834..f834ada2c 100644 --- a/build.gradle +++ b/build.gradle @@ -69,7 +69,7 @@ subprojects { apply plugin: 'signing' group = "org.openmbee.mms" - archivesBaseName = "mms-" + project.name + archivesBaseName = project.name version = rootProject.version Map commonDependencies = rootProject.ext.commonDependencies @@ -173,7 +173,7 @@ subprojects { } pom.project { - name 'mms-' + project.name + name project.name packaging 'jar' // optionally artifactId can be defined here description project.description From 6aeffe29c9fe34115af15b5c34e9d34385123a9c Mon Sep 17 00:00:00 2001 From: Jason Han Date: Tue, 16 Feb 2021 14:41:58 -0800 Subject: [PATCH 07/10] Disable upload of example module --- build.gradle | 3 +++ 1 file changed, 3 insertions(+) diff --git a/build.gradle b/build.gradle index f834ada2c..580eba809 100644 --- a/build.gradle +++ b/build.gradle @@ -211,4 +211,7 @@ subprojects { } } } +} +project('example') { + uploadArchives.enabled = false } \ No newline at end of file From 751f5bfdac4fdf9d0d7a21a97da54103a1e8dbff Mon Sep 17 00:00:00 2001 From: Jason Han Date: Tue, 16 Feb 2021 16:14:17 -0800 Subject: [PATCH 08/10] Remove upload to artifactory --- .circleci/config.yml | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index ffb261255..60e2dd8c6 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -52,18 +52,12 @@ jobs: steps: - attach_workspace: at: ~/ - - run: - name: Deploy snapshot to Artifactory - command: ./gradlew -PbuildNumber=$CIRCLE_BUILD_NUM -PbuildTag=$CIRCLE_TAG -PartifactoryUrl=$ARTIFACTORY_URL -PartifactoryRepository=$SNAPSHOT_ARTIFACTORY_REPOSITORY -PartifactoryUsername=$ARTIFACTORY_USERNAME -PartifactoryPassword=$ARTIFACTORY_PASSWORD --info --stacktrace artifactoryPublish - deploy_release: + deploy_release: executor: openjdk_executor working_directory: /home/circleci/mms steps: - attach_workspace: at: ~/ - - run: - name: Deploy release to Artifactory - command: ./gradlew -PbuildNumber=$CIRCLE_BUILD_NUM -PbuildTag=$CIRCLE_TAG -PartifactoryUrl=$ARTIFACTORY_URL -PartifactoryRepository=$RELEASE_ARTIFACTORY_REPOSITORY -PartifactoryUsername=$ARTIFACTORY_USERNAME -PartifactoryPassword=$ARTIFACTORY_PASSWORD --info --stacktrace artifactoryPublish - run: name: Deploy release to Bintray command: ./gradlew -PbuildNumber=$CIRCLE_BUILD_NUM -PbuildTag=$CIRCLE_TAG -PbintrayUser=$BINTRAY_USER -PbintrayKey=$BINTRAY_KEY --info --stacktrace bintrayUpload From fe886aaaa992e01486e088d12630a132237fd0c0 Mon Sep 17 00:00:00 2001 From: Jason Han Date: Tue, 16 Feb 2021 16:16:54 -0800 Subject: [PATCH 09/10] Add message for step --- .circleci/config.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index 60e2dd8c6..e59c8331f 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -52,6 +52,9 @@ jobs: steps: - attach_workspace: at: ~/ + - run: + name: Deploy snapshot to sonatype + command: echo "CircleCI publishing not implemented yet." deploy_release: executor: openjdk_executor working_directory: /home/circleci/mms From 873dcc4bf5cf0324cae6a3437729e79d367c1219 Mon Sep 17 00:00:00 2001 From: Jason Han Date: Tue, 16 Feb 2021 16:36:44 -0800 Subject: [PATCH 10/10] Fix yaml --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index e59c8331f..58425046b 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -55,7 +55,7 @@ jobs: - run: name: Deploy snapshot to sonatype command: echo "CircleCI publishing not implemented yet." - deploy_release: + deploy_release: executor: openjdk_executor working_directory: /home/circleci/mms steps: