73 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			73 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
plugins {
 | 
						|
  id("otel.java-conventions")
 | 
						|
}
 | 
						|
 | 
						|
dependencies {
 | 
						|
  implementation("com.google.errorprone:error_prone_core")
 | 
						|
 | 
						|
  annotationProcessor("com.google.auto.service:auto-service")
 | 
						|
  compileOnly("com.google.auto.service:auto-service-annotations")
 | 
						|
 | 
						|
  testImplementation("com.google.errorprone:error_prone_test_helpers")
 | 
						|
}
 | 
						|
 | 
						|
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 {
 | 
						|
  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.comp=ALL-UNNAMED",
 | 
						|
          "--add-exports",
 | 
						|
          "jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED",
 | 
						|
          "--add-exports",
 | 
						|
          "jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED",
 | 
						|
        ),
 | 
						|
      )
 | 
						|
    }
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
tasks.withType<Test>().configureEach {
 | 
						|
  // required on jdk17
 | 
						|
  jvmArgs("--add-opens=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED")
 | 
						|
  jvmArgs("--add-opens=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED")
 | 
						|
  jvmArgs("--add-opens=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED")
 | 
						|
  jvmArgs("--add-opens=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED")
 | 
						|
  jvmArgs("--add-opens=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED")
 | 
						|
  jvmArgs("--add-opens=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED")
 | 
						|
  jvmArgs("--add-opens=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED")
 | 
						|
  jvmArgs("--add-opens=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED")
 | 
						|
  jvmArgs("-XX:+IgnoreUnrecognizedVMOptions")
 | 
						|
}
 | 
						|
 | 
						|
// 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
 | 
						|
    }
 | 
						|
  }
 | 
						|
}
 |