opentelemetry-java-instrume.../build.gradle

114 lines
2.6 KiB
Groovy

import java.time.Duration
import nebula.plugin.release.git.opinion.Strategies
plugins {
id 'idea'
id "io.github.gradle-nexus.publish-plugin"
id "nebula.release"
id 'org.gradle.test-retry' apply false
id 'org.unbroken-dome.test-sets' apply false
id 'com.github.ben-manes.versions'
id "com.github.johnrengelman.shadow" apply false
id "com.diffplug.spotless"
id "com.github.spotbugs" apply false
id "net.ltgt.errorprone" apply false
id "net.ltgt.nullaway" apply false
}
release {
defaultVersionStrategy = Strategies.SNAPSHOT
}
nebulaRelease {
addReleaseBranchPattern(/v\d+\.\d+\.x/)
}
nexusPublishing {
packageGroup = "io.opentelemetry"
repositories {
sonatype {
username = System.getenv('SONATYPE_USER')
password = System.getenv('SONATYPE_KEY')
}
}
connectTimeout = Duration.ofMinutes(5)
clientTimeout = Duration.ofMinutes(5)
transitionCheckOptions {
// We have many artifacts so Maven Central takes a long time on its compliance checks. This sets
// the timeout for waiting for the repository to close to a comfortable 50 minutes.
maxRetries.set(300)
delayBetween.set(Duration.ofSeconds(10))
}
}
// Enable after verifying Maven Central publishing once through manual closing
// tasks.release.finalizedBy tasks.closeAndReleaseRepository
allprojects {
apply from: "$rootDir/gradle/util.gradle"
}
repositories {
mavenLocal()
mavenCentral()
}
description = 'OpenTelemetry instrumentations for Java'
allprojects {
apply plugin: 'idea'
idea {
module {
downloadJavadoc = false
downloadSources = false
}
}
plugins.withId('net.ltgt.errorprone') {
plugins.apply('net.ltgt.nullaway')
dependencies {
errorprone "com.google.errorprone:error_prone_core"
errorprone "com.uber.nullaway:nullaway"
}
nullaway {
annotatedPackages.addAll("io.opentelemetry", "com.linecorp.armeria,com.google.common")
}
tasks.withType(JavaCompile).configureEach {
if (!name.toLowerCase().contains("test")) {
options.errorprone {
nullaway {
severity = net.ltgt.gradle.errorprone.CheckSeverity.ERROR
}
// Doesn't work well with Java 8
disable("FutureReturnValueIgnored")
}
}
}
}
}
apply plugin: 'com.diffplug.spotless'
spotless {
// this formatting is applied at the root level, as some of these files are not in a submodules
// and would be missed otherwise
format 'misc', {
target '.gitignore', '*.md', 'docs/**/*.md'
indentWithSpaces()
trimTrailingWhitespace()
endWithNewline()
}
}