|
@@ -1,29 +1,54 @@
|
|
|
plugins {
|
|
|
- `java-library`
|
|
|
+ id("otel.java-conventions")
|
|
|
}
|
|
|
|
|
|
dependencies {
|
|
|
- implementation("com.google.errorprone:error_prone_core:2.10.0")
|
|
|
+ implementation("com.google.errorprone:error_prone_core")
|
|
|
|
|
|
- annotationProcessor("com.google.auto.service:auto-service:1.0.1")
|
|
|
- compileOnly("com.google.auto.service:auto-service-annotations:1.0.1")
|
|
|
+ annotationProcessor("com.google.auto.service:auto-service")
|
|
|
+ compileOnly("com.google.auto.service:auto-service-annotations")
|
|
|
|
|
|
- testImplementation("org.junit.jupiter:junit-jupiter-api:5.8.2")
|
|
|
- testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:5.8.2")
|
|
|
+ testImplementation("com.google.errorprone:error_prone_test_helpers")
|
|
|
+}
|
|
|
|
|
|
- testImplementation("com.google.errorprone:error_prone_test_helpers:2.11.0")
|
|
|
+otelJava {
|
|
|
+ minJavaVersionSupported.set(JavaVersion.VERSION_11)
|
|
|
+}
|
|
|
+
|
|
|
+// We cannot use "--release" javac option here because that will forbid exporting com.sun.tools package.
|
|
|
+// We also can't seem to use the toolchain without the "--release" option. So disable everything.
|
|
|
+
|
|
|
+java {
|
|
|
+ sourceCompatibility = JavaVersion.VERSION_11
|
|
|
+ targetCompatibility = JavaVersion.VERSION_11
|
|
|
+ toolchain {
|
|
|
+ languageVersion.set(null as JavaLanguageVersion?)
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
tasks {
|
|
|
- test {
|
|
|
- useJUnitPlatform()
|
|
|
+ withType<JavaCompile>().configureEach {
|
|
|
+ with(options) {
|
|
|
+ release.set(null as Int?)
|
|
|
+
|
|
|
+ compilerArgs.addAll(
|
|
|
+ listOf(
|
|
|
+ "--add-exports", "jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED",
|
|
|
+ "--add-exports", "jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED",
|
|
|
+ "--add-exports", "jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED"
|
|
|
+ )
|
|
|
+ )
|
|
|
+ }
|
|
|
}
|
|
|
+}
|
|
|
|
|
|
- withType<JavaCompile> {
|
|
|
- options.compilerArgs.addAll(listOf(
|
|
|
- "--add-exports", "jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED",
|
|
|
- "--add-exports", "jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED",
|
|
|
- "--add-exports", "jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED"
|
|
|
- ))
|
|
|
+// Our conventions apply this project as a dependency in the errorprone configuration, which would cause
|
|
|
+// a circular dependency if trying to compile this project with that still there. So we filter this
|
|
|
+// project out.
|
|
|
+configurations {
|
|
|
+ named("errorprone") {
|
|
|
+ dependencies.removeIf {
|
|
|
+ it is ProjectDependency && it.dependencyProject == project
|
|
|
+ }
|
|
|
}
|
|
|
}
|