-
Notifications
You must be signed in to change notification settings - Fork 131
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
7 changed files
with
230 additions
and
44 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,43 +1,30 @@ | ||
buildscript { | ||
repositories { | ||
jcenter() | ||
} | ||
|
||
dependencies { | ||
// https://github.com/melix/japicmp-gradle-plugin/issues/36 | ||
classpath 'com.google.guava:guava:31.1-jre' | ||
} | ||
} | ||
|
||
|
||
plugins { | ||
id 'java' | ||
id 'jacoco' | ||
id 'com.auth0.gradle.oss-library.java' | ||
id 'me.champeau.gradle.japicmp' version '0.2.9' | ||
} | ||
|
||
repositories { | ||
mavenCentral() | ||
} | ||
|
||
group = 'com.auth0' | ||
logger.lifecycle("Using version ${version} for ${name} group $group") | ||
|
||
def signingKey = findProperty('signingKey') | ||
def signingKeyPwd = findProperty('signingPassword') | ||
|
||
oss { | ||
name 'auth0' | ||
repository 'auth0-java' | ||
organization 'auth0' | ||
description 'Java client library for the Auth0 platform.' | ||
baselineCompareVersion '2.0.0' | ||
testInJavaVersions = [8, 11, 17] | ||
skipAssertSigningConfiguration true | ||
|
||
developers { | ||
auth0 { | ||
displayName = 'Auth0' | ||
email = '[email protected]' | ||
} | ||
lbalmaceda { | ||
displayName = 'Luciano Balmaceda' | ||
email = '[email protected]' | ||
} | ||
} | ||
} | ||
apply from: rootProject.file('gradle/versioning.gradle') | ||
|
||
signing { | ||
useInMemoryPgpKeys(signingKey, signingKeyPwd) | ||
} | ||
version = getVersionFromFile() | ||
group = GROUP | ||
logger.lifecycle("Using version ${version} for ${name} group $group") | ||
|
||
jacocoTestReport { | ||
reports { | ||
|
@@ -63,6 +50,61 @@ compileTestJava { | |
options.compilerArgs << "-Xlint:deprecation" << "-Werror" | ||
} | ||
|
||
import me.champeau.gradle.japicmp.JapicmpTask | ||
|
||
project.afterEvaluate { | ||
|
||
def versions = project.ext.testInJavaVersions | ||
for (pluginJavaTestVersion in versions) { | ||
def taskName = "testInJava-${pluginJavaTestVersion}" | ||
tasks.register(taskName, Test) { | ||
def versionToUse = taskName.split("-").getAt(1) as Integer | ||
description = "Runs unit tests on Java version ${versionToUse}." | ||
project.logger.quiet("Test will be running in ${versionToUse}") | ||
group = 'verification' | ||
javaLauncher.set(javaToolchains.launcherFor { | ||
languageVersion = JavaLanguageVersion.of(versionToUse) | ||
}) | ||
shouldRunAfter(tasks.named('test')) | ||
} | ||
tasks.named('check') { | ||
dependsOn(taskName) | ||
} | ||
} | ||
|
||
project.configure(project) { | ||
def baselineVersion = project.ext.baselineCompareVersion | ||
task('apiDiff', type: JapicmpTask, dependsOn: 'jar') { | ||
oldClasspath = files(getBaselineJar(project, baselineVersion)) | ||
newClasspath = files(jar.archiveFile) | ||
onlyModified = true | ||
failOnModification = true | ||
ignoreMissingClasses = true | ||
htmlOutputFile = file("$buildDir/reports/apiDiff/apiDiff.html") | ||
txtOutputFile = file("$buildDir/reports/apiDiff/apiDiff.txt") | ||
doLast { | ||
project.logger.quiet("Comparing against baseline version ${baselineVersion}") | ||
} | ||
} | ||
} | ||
} | ||
|
||
private static File getBaselineJar(Project project, String baselineVersion) { | ||
// Use detached configuration: https://github.com/square/okhttp/blob/master/build.gradle#L270 | ||
def group = project.group | ||
try { | ||
def baseline = "${project.group}:${project.name}:$baselineVersion" | ||
project.group = 'virtual_group_for_japicmp' | ||
def dependency = project.dependencies.create(baseline + "@jar") | ||
return project.configurations.detachedConfiguration(dependency).files.find { | ||
it.name == "${project.name}-${baselineVersion}.jar" | ||
} | ||
} finally { | ||
project.group = group | ||
} | ||
} | ||
|
||
|
||
test { | ||
testLogging { | ||
events "skipped", "failed" | ||
|
@@ -75,6 +117,9 @@ ext { | |
okhttpVersion = '4.11.0' | ||
hamcrestVersion = '2.2' | ||
jupiterVersion = '5.9.3' | ||
|
||
baselineCompareVersion = '2.0.0' | ||
testInJavaVersions = [8, 11, 17, 21] | ||
} | ||
|
||
dependencies { | ||
|
@@ -105,3 +150,5 @@ dependencies { | |
} | ||
} | ||
} | ||
|
||
apply from: rootProject.file('gradle/maven-publish.gradle') |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
GROUP=com.auth0 | ||
POM_ARTIFACT_ID=auth0 | ||
VERSION_NAME=2.12.0 | ||
|
||
POM_NAME=auth0-java | ||
POM_DESCRIPTION=Java client library for the Auth0 platform | ||
POM_PACKAGING=jar | ||
|
||
POM_URL=https://github.com/auth0/auth0-java | ||
POM_SCM_URL=https://github.com/auth0/auth0-java | ||
|
||
POM_SCM_CONNECTION=scm:git:https://github.com/auth0/auth0-java.git | ||
POM_SCM_DEV_CONNECTION=scm:git:https://github.com/auth0/auth0-java.git | ||
|
||
POM_LICENCE_NAME=The MIT License (MIT) | ||
POM_LICENCE_URL=https://raw.githubusercontent.com/auth0/auth0-java/master/LICENSE | ||
POM_LICENCE_DIST=repo | ||
|
||
POM_DEVELOPER_ID=auth0 | ||
POM_DEVELOPER_NAME=Auth0 | ||
POM_DEVELOPER_EMAIL[email protected] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,111 @@ | ||
apply plugin: 'maven-publish' | ||
apply plugin: 'signing' | ||
|
||
task('sourcesJar', type: Jar, dependsOn: classes) { | ||
archiveClassifier = 'sources' | ||
from sourceSets.main.allSource | ||
} | ||
|
||
task('javadocJar', type: Jar, dependsOn: javadoc) { | ||
archiveClassifier = 'javadoc' | ||
from javadoc.getDestinationDir() | ||
} | ||
tasks.withType(Javadoc).configureEach { | ||
javadocTool = javaToolchains.javadocToolFor { | ||
// Use latest JDK for javadoc generation | ||
languageVersion = JavaLanguageVersion.of(17) | ||
} | ||
} | ||
|
||
javadoc { | ||
// Specify the Java version that the project will use | ||
options.addStringOption('-release', "8") | ||
} | ||
artifacts { | ||
archives sourcesJar, javadocJar | ||
} | ||
|
||
|
||
final releaseRepositoryUrl = "https://oss.sonatype.org/service/local/staging/deploy/maven2/" | ||
final snapshotRepositoryUrl = "https://oss.sonatype.org/content/repositories/snapshots/" | ||
|
||
publishing { | ||
publications { | ||
mavenJava(MavenPublication) { | ||
|
||
groupId = GROUP | ||
artifactId = POM_ARTIFACT_ID | ||
version = getVersionName() | ||
|
||
artifact("$buildDir/libs/${project.name}-${version}.jar") | ||
artifact sourcesJar | ||
artifact javadocJar | ||
|
||
pom { | ||
name = POM_NAME | ||
packaging = POM_PACKAGING | ||
description = POM_DESCRIPTION | ||
url = POM_URL | ||
|
||
licenses { | ||
license { | ||
name = POM_LICENCE_NAME | ||
url = POM_LICENCE_URL | ||
distribution = POM_LICENCE_DIST | ||
} | ||
} | ||
|
||
developers { | ||
developer { | ||
id = POM_DEVELOPER_ID | ||
name = POM_DEVELOPER_NAME | ||
email = POM_DEVELOPER_EMAIL | ||
} | ||
} | ||
|
||
scm { | ||
url = POM_SCM_URL | ||
connection = POM_SCM_CONNECTION | ||
developerConnection = POM_SCM_DEV_CONNECTION | ||
} | ||
|
||
pom.withXml { | ||
def dependenciesNode = asNode().appendNode('dependencies') | ||
|
||
project.configurations.implementation.allDependencies.each { | ||
def dependencyNode = dependenciesNode.appendNode('dependency') | ||
dependencyNode.appendNode('groupId', it.group) | ||
dependencyNode.appendNode('artifactId', it.name) | ||
dependencyNode.appendNode('version', it.version) | ||
} | ||
} | ||
} | ||
} | ||
} | ||
repositories { | ||
maven { | ||
name = "sonatype" | ||
url = version.endsWith('SNAPSHOT') ? snapshotRepositoryUrl : releaseRepositoryUrl | ||
credentials { | ||
username = System.getenv("MAVEN_USERNAME") | ||
password = System.getenv("MAVEN_PASSWORD") | ||
} | ||
} | ||
} | ||
} | ||
|
||
signing { | ||
def signingKey = System.getenv("SIGNING_KEY") | ||
def signingPassword = System.getenv("SIGNING_PASSWORD") | ||
useInMemoryPgpKeys(signingKey, signingPassword) | ||
|
||
sign publishing.publications.mavenJava | ||
} | ||
|
||
javadoc { | ||
if(JavaVersion.current().isJava9Compatible()) { | ||
options.addBooleanOption('html5', true) | ||
} | ||
} | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
def getVersionFromFile() { | ||
def versionFile = rootProject.file('.version') | ||
return versionFile.text.readLines().first().trim() | ||
} | ||
|
||
def isSnapshot() { | ||
return hasProperty('isSnapshot') ? isSnapshot.toBoolean() : true | ||
} | ||
|
||
def getVersionName() { | ||
return isSnapshot() ? project.version+"-SNAPSHOT" : project.version | ||
} | ||
|
||
ext { | ||
getVersionName = this.&getVersionName | ||
getVersionFromFile = this.&getVersionFromFile | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters