diff --git a/lib/java-server-sdk-otel/build.gradle b/lib/java-server-sdk-otel/build.gradle index 3d46162..f329baa 100644 --- a/lib/java-server-sdk-otel/build.gradle +++ b/lib/java-server-sdk-otel/build.gradle @@ -9,6 +9,9 @@ plugins { // Apply the java-library plugin for API and implementation separation. id 'java-library' + id "maven-publish" + id "signing" + id "io.github.gradle-nexus.publish-plugin" version "1.3.0" } repositories { @@ -19,6 +22,14 @@ repositories { } } +allprojects { + group = 'com.launchdarkly' + version = "${version}" + archivesBaseName = 'launchdarkly-java-server-sdk-otel' + sourceCompatibility = 1.8 + targetCompatibility = 1.8 +} + dependencies { // Use JUnit test framework. testImplementation 'junit:junit:4.13.2' @@ -28,3 +39,47 @@ dependencies { implementation "com.launchdarkly:launchdarkly-java-server-sdk:7.4.0-SNAPSHOT" implementation "io.opentelemetry:opentelemetry-api:1.2.0" } + +publishing { + publications { + mavenJava(MavenPublication) { + from(components["java"]) + + pom { + name.set("LaunchDarkly Java Server Otel Integration") + url.set("https://github.com/launchdarkly/java-core") + licenses { + license { + name.set("The Apache License, Version 2.0") + url.set("http://www.apache.org/licenses/LICENSE-2.0.txt") + } + } + developers { + developer { + name.set("LaunchDarkly SDK Team") + email.set("sdks@launchdarkly.com") + } + } + scm { + connection.set("scm:git:git://github.com/launchdarkly/java-core.git") + developerConnection.set("scm:git:ssh:git@github.com:launchdarkly/java-core.git") + url.set("https://github.com/launchdarkly/java-core") + } + } + } + } +} + +nexusPublishing { + clientTimeout = java.time.Duration.ofMinutes(2) // we've seen extremely long delays in creating repositories + repositories { + sonatype { + username = ossrhUsername + password = ossrhPassword + } + } +} + +signing { + sign(publishing.publications["mavenJava"]) +} diff --git a/lib/java-server-sdk-otel/gradle.properties b/lib/java-server-sdk-otel/gradle.properties index de55ab6..2068675 100644 --- a/lib/java-server-sdk-otel/gradle.properties +++ b/lib/java-server-sdk-otel/gradle.properties @@ -1 +1,5 @@ version=0.1.0 +# The following empty ossrh properties are used by LaunchDarkly's internal integration testing framework +# and should not be needed for typical development purposes (including by third-party developers). +ossrhUsername= +ossrhPassword= diff --git a/lib/java-server-sdk-otel/settings.gradle b/lib/java-server-sdk-otel/settings.gradle index 95f9ba0..bb2dfd8 100644 --- a/lib/java-server-sdk-otel/settings.gradle +++ b/lib/java-server-sdk-otel/settings.gradle @@ -7,5 +7,5 @@ * in the user manual at https://docs.gradle.org/8.0.2/userguide/multi_project_builds.html */ -rootProject.name = 'java-server-sdk-otel' +rootProject.name = 'launchdarkly-java-server-sdk-otel' include('lib')