opentelemetry-java-instrume.../gradle/publish.gradle

99 lines
2.8 KiB
Groovy

apply plugin: 'maven-publish'
apply plugin: 'signing'
apply plugin: 'de.marcphilipp.nexus-publish'
nexusPublishing {
repositories {
sonatype()
}
}
publishing {
publications {
maven(MavenPublication) {
if (project.tasks.findByName("shadowJar") != null && !findProperty('noShadowPublish')) {
project.shadow.component(it)
//These two are here just to satisfy Maven Central
artifact sourcesJar
artifact javadocJar
} else {
from components.java
}
afterEvaluate {
def mavenGroupId = project.findProperty('mavenGroupId')
if (mavenGroupId) {
groupId = mavenGroupId
}
artifactId = artifactPrefix(project, archivesBaseName) + archivesBaseName
if (!groupId.startsWith("io.opentelemetry.")) {
throw new GradleException("groupId is not set for this project or its parent $project.parent")
}
}
pom {
name = 'OpenTelemetry Instrumentation for Java'
packaging = 'jar'
url = 'https://github.com/open-telemetry/opentelemetry-java-instrumentation'
licenses {
license {
name = 'The Apache License, Version 2.0'
url = 'http://www.apache.org/licenses/LICENSE-2.0.txt'
}
}
developers {
developer {
id = 'opentelemetry'
name = 'OpenTelemetry Gitter'
url = 'https://gitter.im/open-telemetry/opentelemetry-java-instrumentation'
}
}
scm {
connection = 'scm:git:git@github.com:open-telemetry/opentelemetry-java-instrumentation.git'
developerConnection = 'scm:git:git@github.com:open-telemetry/opentelemetry-java-instrumentation.git'
url = 'git@github.com:open-telemetry/opentelemetry-java-instrumentation.git'
}
afterEvaluate {
// description is not available until evaluated.
description = project.description ?: 'Instrumentation of Java libraries using OpenTelemetry.'
}
}
}
}
}
private String artifactPrefix(Project p, String archivesBaseName) {
if (archivesBaseName.startsWith("opentelemetry")) {
return ''
}
if (p.name.startsWith("opentelemetry")) {
return ''
}
if (p.name.startsWith("javaagent")) {
return 'opentelemetry-'
}
if (p.group == 'io.opentelemetry.javaagent.instrumentation') {
return 'opentelemetry-javaagent-'
}
return 'opentelemetry-'
}
rootProject.tasks.release.finalizedBy tasks.publishToSonatype
rootProject.tasks.closeAndReleaseRepository.dependsOn tasks.publishToSonatype
tasks.withType(Sign).configureEach {
onlyIf { System.getenv("CI") != null }
}
signing {
useInMemoryPgpKeys(System.getenv("GPG_PRIVATE_KEY"), System.getenv("GPG_PASSWORD"))
sign publishing.publications.maven
}