diff options
author | Jiayu Liu <Jimexist@users.noreply.github.com> | 2022-05-08 13:01:41 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-05-08 01:01:41 -0400 |
commit | eb62fa8d13f9860c4c877d0252e67ef21b013488 (patch) | |
tree | 1f4ff1428c8f81ce20ae4e2be6f1c6cf6de45585 /lib/java | |
parent | bcac978ce97e9808866ed639f88095473ba5c261 (diff) | |
download | thrift-eb62fa8d13f9860c4c877d0252e67ef21b013488.tar.gz |
THRIFT-5553: use newer gradle API (#2561)
Prepare for moving to Gradle 7 by removing use of older Gradle directives
(except the use of maven; the transition to maven-publish is not included here)
Diffstat (limited to 'lib/java')
-rw-r--r-- | lib/java/build.gradle | 2 | ||||
-rw-r--r-- | lib/java/gradle/environment.gradle | 16 | ||||
-rw-r--r-- | lib/java/gradle/functionalTests.gradle | 36 |
3 files changed, 32 insertions, 22 deletions
diff --git a/lib/java/build.gradle b/lib/java/build.gradle index 726d7b7f6..3e750fddc 100644 --- a/lib/java/build.gradle +++ b/lib/java/build.gradle @@ -39,7 +39,7 @@ plugins { id 'java-library' id 'maven' id 'signing' - id 'com.github.johnrengelman.shadow' version '4.0.4' + id 'com.github.johnrengelman.shadow' version '6.1.0' id "com.github.spotbugs" version "4.7.1" id "com.diffplug.spotless" version "6.4.2" } diff --git a/lib/java/gradle/environment.gradle b/lib/java/gradle/environment.gradle index 2f49a0d2a..224f10fec 100644 --- a/lib/java/gradle/environment.gradle +++ b/lib/java/gradle/environment.gradle @@ -64,14 +64,14 @@ repositories { } dependencies { - compile "org.slf4j:slf4j-api:${slf4jVersion}" - compile "org.apache.httpcomponents:httpclient:${httpclientVersion}" - compile "org.apache.httpcomponents:httpcore:${httpcoreVersion}" - compile "javax.servlet:javax.servlet-api:${servletVersion}" - compile "javax.annotation:javax.annotation-api:${javaxAnnotationVersion}" - compile "org.apache.commons:commons-lang3:3.12.0" + implementation "org.slf4j:slf4j-api:${slf4jVersion}" + implementation "org.apache.httpcomponents:httpclient:${httpclientVersion}" + implementation "org.apache.httpcomponents:httpcore:${httpcoreVersion}" + implementation "javax.servlet:javax.servlet-api:${servletVersion}" + implementation "javax.annotation:javax.annotation-api:${javaxAnnotationVersion}" + implementation "org.apache.commons:commons-lang3:3.12.0" testImplementation "org.junit.jupiter:junit-jupiter:${junitVersion}" - testCompile "org.mockito:mockito-all:${mockitoVersion}" - testRuntime "org.slf4j:slf4j-log4j12:${slf4jVersion}" + testImplementation "org.mockito:mockito-all:${mockitoVersion}" + testRuntimeOnly "org.slf4j:slf4j-log4j12:${slf4jVersion}" } diff --git a/lib/java/gradle/functionalTests.gradle b/lib/java/gradle/functionalTests.gradle index 15737f56e..e8a3e8955 100644 --- a/lib/java/gradle/functionalTests.gradle +++ b/lib/java/gradle/functionalTests.gradle @@ -34,15 +34,27 @@ sourceSets { } } +// see https://docs.gradle.org/current/userguide/java_library_plugin.html +// 1. defines cross test implementation that includes all test implementation, which in turn +// contains all implementation dependencies +// 2. defines cross test runtime that further includes test runtime only dependencies +// 3. the cross test implementation will need to depends on main and test output +// 4. shadow jar will package both main and test source set, along with cross test runtime dependencies configurations { - crossTestCompile { extendsFrom testCompile } - crossTestRuntime { extendsFrom crossTestCompile, testRuntime } + crossTestImplementation { + description "implementation for cross test" + extendsFrom testImplementation + } + crossTestRuntime { + description "runtime dependencies for cross test" + extendsFrom crossTestImplementation, testRuntimeOnly + } } dependencies { - crossTestCompile "org.apache.tomcat.embed:tomcat-embed-core:${tomcatEmbedVersion}" - crossTestCompile sourceSets.main.output - crossTestCompile sourceSets.test.output + crossTestImplementation "org.apache.tomcat.embed:tomcat-embed-core:${tomcatEmbedVersion}" + crossTestImplementation sourceSets.main.output + crossTestImplementation sourceSets.test.output } // I am using shadow plugin to make a self contained functional test Uber JAR that @@ -53,19 +65,17 @@ shadowJar { description = 'Assemble a test JAR file for cross-check execution' // make sure the runners are created when this runs dependsOn 'generateRunnerScriptForClient', 'generateRunnerScriptForServer', 'generateRunnerScriptForNonblockingServer', 'generateRunnerScriptForTServletServer' - - baseName = 'functionalTest' - destinationDir = file("$buildDir/functionalTestJar") - classifier = null - + archiveBaseName.set('functionalTest') + destinationDirectory = file("$buildDir/functionalTestJar") + archiveClassifier.set(null) // We do not need a version number for this internal jar - version = null - + archiveVersion.set(null) // Bundle the complete set of unit test classes including generated code // and the runtime dependencies in one JAR to expedite execution. + // see https://imperceptiblethoughts.com/shadow/custom-tasks/ from sourceSets.test.output from sourceSets.crossTest.output - configurations = [project.configurations.testRuntime] + configurations = [project.configurations.crossTestRuntime] } // Common script runner configuration elements |