diff --git a/LICENSE.TXT b/LICENSE.TXT index 2fadd27..15551d4 100644 --- a/LICENSE.TXT +++ b/LICENSE.TXT @@ -1,4 +1,4 @@ -Copyright (c) 2020, Erik C. Thauvin (erik@thauvin.net) +Copyright (c) 2020-2021, Erik C. Thauvin (erik@thauvin.net) All rights reserved. Redistribution and use in source and binary forms, with or without diff --git a/README.md b/README.md index 2a80009..5d7f91d 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -[![License (3-Clause BSD)](https://img.shields.io/badge/license-BSD%203--Clause-blue.svg?style=flat-square)](http://opensource.org/licenses/BSD-3-Clause) [![release](https://img.shields.io/github/release/ethauvin/readingtime.svg)](https://github.com/ethauvin/readingtime/releases/latest) [![Maven Central](https://maven-badges.herokuapp.com/maven-central/net.thauvin.erik/readingtime/badge.svg)](https://maven-badges.herokuapp.com/maven-central/net.thauvin.erik/readingtime) [![Download](https://api.bintray.com/packages/ethauvin/maven/readingtime/images/download.svg)](https://bintray.com/ethauvin/maven/readingtime/_latestVersion) +![License (3-Clause BSD)](https://img.shields.io/badge/license-BSD%203--Clause-blue.svg?style=flat-square)](http://opensource.org/licenses/BSD-3-Clause) [![Release](https://img.shields.io/github/release/ethauvin/readingtime.svg)](https://github.com/ethauvin/readingtime/releases/latest) [![Maven Central](https://maven-badges.herokuapp.com/maven-central/net.thauvin.erik/readingtime/badge.svg)](https://maven-badges.herokuapp.com/maven-central/net.thauvin.erik/readingtime) [![Known Vulnerabilities](https://snyk.io/test/github/ethauvin/readingtime/badge.svg?targetFile=pom.xml)](https://snyk.io/test/github/ethauvin/readingtime?targetFile=pom.xml) [![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=ethauvin_readingtime&metric=alert_status)](https://sonarcloud.io/dashboard?id=ethauvin_readingtime) [![Build Status](https://travis-ci.com/ethauvin/readingtime.svg?branch=master)](https://travis-ci.com/ethauvin/readingtime) [![CircleCI](https://circleci.com/gh/ethauvin/readingtime/tree/master.svg?style=shield)](https://circleci.com/gh/ethauvin/readingtime/tree/master) diff --git a/build.gradle.kts b/build.gradle.kts index a4c671e..742c56e 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,19 +1,18 @@ -import com.jfrog.bintray.gradle.tasks.BintrayUploadTask import org.jetbrains.dokka.gradle.DokkaTask import org.jetbrains.kotlin.gradle.tasks.KotlinCompile import java.io.FileInputStream import java.util.* plugins { - id("com.github.ben-manes.versions") version "0.33.0" - id("com.jfrog.bintray") version "1.8.5" - id("io.gitlab.arturbosch.detekt") version "1.14.1" - id("org.jetbrains.dokka") version "1.4.10" - id("org.jetbrains.kotlin.jvm") version "1.4.10" - id("org.sonarqube") version "3.0" + id("com.github.ben-manes.versions") version "0.38.0" + id("io.gitlab.arturbosch.detekt") version "1.16.0" + id("org.jetbrains.dokka") version "1.4.30" + id("org.jetbrains.kotlin.jvm") version "1.4.30" + id("org.sonarqube") version "3.1.1" `java-library` `maven-publish` jacoco + signing } description = "Estimated Reading Time for Blog Posts, Articles, etc." @@ -26,20 +25,8 @@ val mavenUrl = "https://github.com/$gitHub" val publicationName = "mavenJava" var isRelease = "release" in gradle.startParameter.taskNames -// Load local.properties -File("local.properties").apply { - if (exists()) { - FileInputStream(this).use { fis -> - Properties().apply { - load(fis) - forEach { (k, v) -> - extra[k as String] = v - } - } - } - } -} repositories { + mavenCentral() jcenter() } @@ -53,16 +40,13 @@ dependencies { java { sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 + withSourcesJar() } detekt { baseline = project.rootDir.resolve("config/detekt/baseline.xml") } -jacoco { - toolVersion = "0.8.6" -} - sonarqube { properties { property("sonar.projectKey", "ethauvin_$name") @@ -70,18 +54,10 @@ sonarqube { } } - -val sourcesJar by tasks.creating(Jar::class) { - archiveClassifier.set("sources") - from(sourceSets.getByName("main").allSource) -} - val javadocJar by tasks.creating(Jar::class) { dependsOn(tasks.dokkaJavadoc) from(tasks.dokkaJavadoc) archiveClassifier.set("javadoc") - description = "Assembles a JAR of the generated Javadoc." - group = JavaBasePlugin.DOCUMENTATION_GROUP } tasks { @@ -101,7 +77,7 @@ tasks { } assemble { - dependsOn(sourcesJar, javadocJar) + dependsOn(javadocJar) } clean { @@ -142,16 +118,6 @@ tasks { } } - val bintrayUpload by existing(BintrayUploadTask::class) { - dependsOn(publishToMavenLocal, gitTag) - doFirst { - versionName = "${project.version}" - versionDesc = "${project.name} ${project.version}" - versionVcsTag = "${project.version}" - versionReleased = Date().toString() - } - } - register("deploy") { description = "Copies all needed files to the $deployDir directory." group = PublishingPlugin.PUBLISH_TASK_GROUP @@ -162,9 +128,9 @@ tasks { } register("release") { - description = "Publishes version ${project.version} to Bintray." + description = "Publishes version ${project.version} to Maven Central." group = PublishingPlugin.PUBLISH_TASK_GROUP - dependsOn("wrapper", bintrayUpload) + dependsOn("wrapper", "deploy", "gitTag", "publishToMavenLocal") } "sonarqube" { @@ -172,82 +138,51 @@ tasks { } } -fun findProperty(s: String) = project.findProperty(s) as String? -bintray { - user = findProperty("bintray.user") - key = findProperty("bintray.apikey") - publish = isRelease - setPublications(publicationName) - pkg.apply { - repo = "maven" - name = project.name - desc = description - websiteUrl = mavenUrl - issueTrackerUrl = "$mavenUrl/issues" - githubRepo = gitHub - githubReleaseNotesFile = "README.md" - vcsUrl = "$mavenUrl.git" - setLabels( - "articles", - "blog", - "java", - "kotlin", - "medium", - "min", - "posts", - "read", - "readingtime", - "readtime", - "weblog" - ) - setLicenses("BSD 3-Clause") - publicDownloadNumbers = true - version.apply { - name = project.version as String - desc = description - vcsTag = project.version as String - gpg.apply { - sign = true - } - } - } -} - publishing { publications { create(publicationName) { from(components["java"]) - artifact(sourcesJar) artifact(javadocJar) - pom.withXml { - asNode().apply { - appendNode("name", project.name) - appendNode("description", project.description) - appendNode("url", mavenUrl) - - appendNode("licenses").appendNode("license").apply { - appendNode("name", "BSD 3-Clause") - appendNode("url", "https://opensource.org/licenses/BSD-3-Clause") + pom { + name.set(project.name) + description.set(project.description) + url.set(mavenUrl) + licenses { + license { + name.set("BSD 3-Clause") + url.set("https://opensource.org/licenses/BSD-3-Clause") } - - appendNode("developers").appendNode("developer").apply { - appendNode("id", "ethauvin") - appendNode("name", "Erik C. Thauvin") - appendNode("email", "erik@thauvin.net") - } - - appendNode("scm").apply { - appendNode("connection", "scm:git:$mavenUrl.git") - appendNode("developerConnection", "scm:git:git@github.com:$gitHub.git") - appendNode("url", mavenUrl) - } - - appendNode("issueManagement").apply { - appendNode("system", "GitHub") - appendNode("url", "$mavenUrl/issues") + } + developers { + developer { + id.set("ethauvin") + name.set("Erik C. Thauvin") + email.set("erik@thauvin.net") + url.set("https://erik.thauvin.net/") } } + scm { + connection.set("scm:git:git://github.com/$gitHub.git") + developerConnection.set("scm:git:git@github.com:$gitHub.git") + url.set("$mavenUrl") + } + issueManagement { + system.set("GitHub") + url.set("$mavenUrl/issues") + } } } } + repositories { + maven { + name = "ossrh" + url = uri("https://oss.sonatype.org/service/local/staging/deploy/maven2/") + credentials(PasswordCredentials::class) + } + } + + signing { + useGpgCmd() + sign(publishing.publications[publicationName]) + } } diff --git a/examples/build.gradle.kts b/examples/build.gradle.kts index 774757f..ab9c64b 100644 --- a/examples/build.gradle.kts +++ b/examples/build.gradle.kts @@ -1,6 +1,6 @@ plugins { - id("org.jetbrains.kotlin.jvm") version "1.4.10" - id("com.github.ben-manes.versions") version "0.33.0" + id("org.jetbrains.kotlin.jvm") version "1.4.31" + id("com.github.ben-manes.versions") version "0.38.0" application } @@ -9,7 +9,7 @@ plugins { repositories { mavenLocal() - jcenter() + mavenCentral() } dependencies { diff --git a/examples/gradle/wrapper/gradle-wrapper.properties b/examples/gradle/wrapper/gradle-wrapper.properties index 12d38de..442d913 100644 --- a/examples/gradle/wrapper/gradle-wrapper.properties +++ b/examples/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.6.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.3-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/examples/gradlew b/examples/gradlew old mode 100644 new mode 100755 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 12d38de..442d913 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.6.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.3-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/pom.xml b/pom.xml index ba57469..298a399 100644 --- a/pom.xml +++ b/pom.xml @@ -9,20 +9,6 @@ net.thauvin.erik readingtime 0.9.0 - - - org.jetbrains.kotlin - kotlin-stdlib-jdk8 - 1.4.0 - compile - - - org.jsoup - jsoup - 1.13.1 - runtime - - readingtime Estimated Reading Time for Blog Posts, Articles, etc. https://github.com/ethauvin/readingtime @@ -37,10 +23,11 @@ ethauvin Erik C. Thauvin erik@thauvin.net + https://erik.thauvin.net/ - scm:git:https://github.com/ethauvin/readingtime.git + scm:git:git://github.com/ethauvin/readingtime.git scm:git:git@github.com:ethauvin/readingtime.git https://github.com/ethauvin/readingtime @@ -48,4 +35,18 @@ GitHub https://github.com/ethauvin/readingtime/issues + + + org.jetbrains.kotlin + kotlin-stdlib-jdk8 + 1.4.30 + compile + + + org.jsoup + jsoup + 1.13.1 + runtime + + diff --git a/pom.xml.asc b/pom.xml.asc new file mode 100644 index 0000000..a39f958 --- /dev/null +++ b/pom.xml.asc @@ -0,0 +1,17 @@ +-----BEGIN PGP SIGNATURE----- +Version: BCPG v1.64 + +iQIzBAABCgAdFiEEOckYpvaxKUI3I6Pxd2cCpqLaMw4FAmBVpxIACgkQd2cCpqLa +Mw6etw/9EaKvA1BsIxL6sbGGeI+HWLMzWjh5sPxBSGFQmkvGSa9zRmf0RNK4cjSC +IZNrNSPGmXsNJEeSElxzUAnJwCHq64sU0XkcBJbCNg7jn7hfckGPmoMgic+5Pm/H +/s6nQTu2t9RRAmVUdOCcrSwv/H6lnmao2qEOO67tOnm+Xd+WALbEOognz+/BCD90 +E2A90av//qckKbywq61tASDwmC61Kwo2IzyoDA11Q5YpWUQ8D0RjIuUyri8uAHX2 +nzr/aoK0ONfAibetK2RUXSzsOco2FGMOBF7sxQ+JHf/f1DOcIoH4uK9Or2Ee/FqN +hTEnNkuhz7nT7RZPUgd+50HDAE9MNRtLiUlkrfrwthL37A8sNWRysU4CMfqUfCR1 +DAcva12GIv3sSMrA+gQH1/f8FEsrA4csN0FU3NIVuO/fIyW3p9KF8ZHnr9maG/P4 +QqkmOVoBOT7Z+kaboYBp8xZE0/JSv2/2SwFwecIGAk9wvb0K5r2+U2N4iV8y/lpt +NRdVAT6Ch88U44dtMANCHaFoXtaV1/0jxlpMyO7XKhFVO6+5CvISGo5f7wZ943CJ +d47dNsSzlSSfUNAuscYUB9xkqca5S+hk9uG2gncNOIU6vGJl++MF6X51HSFgnHff +cY2eKR4IQXbL1uTo6fiqhkFZt7hE56wTB4pMK9aD6hG9FdpxYnE= +=Jspl +-----END PGP SIGNATURE----- diff --git a/src/main/kotlin/net/thauvin/erik/readingtime/ReadingTime.kt b/src/main/kotlin/net/thauvin/erik/readingtime/ReadingTime.kt index 71572a5..400f319 100644 --- a/src/main/kotlin/net/thauvin/erik/readingtime/ReadingTime.kt +++ b/src/main/kotlin/net/thauvin/erik/readingtime/ReadingTime.kt @@ -1,7 +1,7 @@ /* * ReadingTime.kt * - * Copyright (c) 2020, Erik C. Thauvin (erik@thauvin.net) + * Copyright (c) 2020-2021, Erik C. Thauvin (erik@thauvin.net) * All rights reserved. * * Redistribution and use in source and binary forms, with or without