mirror of https://github.com/apache/lucene.git
LUCENE-9990: upgrade to gradle 7.2.
This commit is contained in:
commit
45868a52f1
|
@ -20,12 +20,12 @@ import java.time.format.DateTimeFormatter
|
|||
|
||||
plugins {
|
||||
id "base"
|
||||
id "com.palantir.consistent-versions" version "1.28.0"
|
||||
id "com.palantir.consistent-versions" version "2.0.0"
|
||||
id "org.owasp.dependencycheck" version "5.3.0"
|
||||
id 'de.thetaphi.forbiddenapis' version '3.1' apply false
|
||||
id "de.undercouch.download" version "4.1.1" apply false
|
||||
id "net.ltgt.errorprone" version "1.2.1" apply false
|
||||
id 'com.diffplug.spotless' version "5.8.2" apply false
|
||||
id 'com.diffplug.spotless' version "5.14.3" apply false
|
||||
}
|
||||
|
||||
apply from: file('gradle/globals.gradle')
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
import org.gradle.internal.jvm.Jvm
|
||||
|
||||
import javax.annotation.Nullable
|
||||
|
||||
/*
|
||||
|
@ -287,7 +289,7 @@ class RenderJavadocTask extends DefaultTask {
|
|||
|
||||
@Input
|
||||
@Optional
|
||||
Property<String> luceneDocUrl = project.objects.property(String)
|
||||
final Property<String> luceneDocUrl = project.objects.property(String)
|
||||
|
||||
// default is to require full javadocs
|
||||
@Input
|
||||
|
@ -305,10 +307,10 @@ class RenderJavadocTask extends DefaultTask {
|
|||
@Optional
|
||||
ListProperty<String> extraOpts = project.objects.listProperty(String)
|
||||
|
||||
@Nullable
|
||||
@Optional
|
||||
@Input
|
||||
def executable
|
||||
final Property<String> executable = project.objects.property(String).convention(
|
||||
project.provider { Jvm.current().javadocExecutable.toString() })
|
||||
|
||||
@Input
|
||||
def taskResources
|
||||
|
@ -443,16 +445,7 @@ class RenderJavadocTask extends DefaultTask {
|
|||
}
|
||||
})
|
||||
|
||||
def javadocCmd = {
|
||||
if (executable == null) {
|
||||
JavaInstallationRegistry registry = project.extensions.getByType(JavaInstallationRegistry)
|
||||
JavaInstallation currentJvm = registry.installationForCurrentVirtualMachine.get()
|
||||
return currentJvm.jdk.get().javadocExecutable.asFile
|
||||
} else {
|
||||
return project.file(executable)
|
||||
}
|
||||
}()
|
||||
|
||||
def javadocCmd = project.file(executable.get())
|
||||
logger.info("Javadoc executable used: ${javadocCmd}")
|
||||
|
||||
project.quietExec {
|
||||
|
|
|
@ -269,6 +269,8 @@ class JavaCCTask extends DefaultTask {
|
|||
* Apply closures to all generated files before they're copied back
|
||||
* to mainline code.
|
||||
*/
|
||||
// A subtle bug here is that this makes it not an input... should be a list of replacements instead?
|
||||
@Internal
|
||||
List<Closure<FileTree>> afterGenerate = new ArrayList<>()
|
||||
|
||||
@OutputFiles
|
||||
|
|
|
@ -222,7 +222,7 @@ class JFlexTask extends DefaultTask {
|
|||
@InputFile
|
||||
File skeleton
|
||||
|
||||
@Optional
|
||||
@Internal
|
||||
String heapSize
|
||||
|
||||
@OutputFile
|
||||
|
|
|
@ -53,7 +53,14 @@ configure(rootProject) {
|
|||
"org.gradle.workers.max=${maxWorkers}",
|
||||
"",
|
||||
"# Maximum number of test JVMs forked per test task.",
|
||||
"tests.jvms=${testsJvms}"
|
||||
"tests.jvms=${testsJvms}",
|
||||
"",
|
||||
"# Disable auto JVM provisioning",
|
||||
"org.gradle.java.installations.auto-download=false",
|
||||
"",
|
||||
"# Set these to enable automatic JVM location discovery.",
|
||||
"# org.gradle.java.installations.fromEnv=JDK11,JDK12,JDK13,JDK14,JDK15,JDK16,JDK17",
|
||||
"# org.gradle.java.installations.paths=(custom paths)",
|
||||
].join("\n"), "UTF-8")
|
||||
|
||||
logger.log(LogLevel.WARN, "\nIMPORTANT. This is the first time you ran the build. " +
|
||||
|
|
|
@ -1,3 +1,9 @@
|
|||
|
||||
import org.gradle.internal.jvm.JavaInfo
|
||||
import org.gradle.internal.jvm.Jvm
|
||||
import org.gradle.internal.jvm.inspection.JvmInstallationMetadata
|
||||
import org.gradle.internal.jvm.inspection.JvmMetadataDetector
|
||||
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
|
@ -16,62 +22,68 @@
|
|||
*/
|
||||
|
||||
// This adds support for compiling and testing against a different Java runtime.
|
||||
// This is the only way to build against JVMs not yet supported by Gradle itself.
|
||||
//
|
||||
// I failed to set it up leveraging Gradle's toolchains because
|
||||
// a toolchain spec is not flexible enough to provide an exact location of the JVM to be used;
|
||||
// if you have two identical JVM lang. versions in auto-discovered JVMs, an arbitrary one is used (?).
|
||||
// This situation is not uncommon when debugging low-level stuff (hand-compiled JVM binaries).
|
||||
//
|
||||
// The code below is a workaround using internal gradle classes. It may stop working in the future
|
||||
// but for now it's fine.
|
||||
|
||||
JavaInstallationRegistry registry = extensions.getByType(JavaInstallationRegistry)
|
||||
|
||||
JavaInstallation currentJvm = registry.installationForCurrentVirtualMachine.get()
|
||||
|
||||
JavaInstallation altJvm = {
|
||||
JavaInfo jvmGradle = Jvm.current();
|
||||
JavaInfo jvmCurrent = {
|
||||
def runtimeJavaHome = propertyOrDefault("runtime.java.home", System.getenv('RUNTIME_JAVA_HOME'))
|
||||
if (!runtimeJavaHome) {
|
||||
return currentJvm
|
||||
if (runtimeJavaHome != null) {
|
||||
return Jvm.forHome(file(runtimeJavaHome))
|
||||
} else {
|
||||
return registry.installationForDirectory(
|
||||
layout.projectDirectory.dir(runtimeJavaHome)).get()
|
||||
return jvmGradle
|
||||
}
|
||||
}()
|
||||
|
||||
// Set up root project's property.
|
||||
rootProject.ext.runtimeJava = altJvm
|
||||
rootProject.ext.runtimeJavaVersion = altJvm.javaVersion
|
||||
|
||||
if (!currentJvm.javaExecutable.equals(altJvm.javaExecutable)) {
|
||||
// Set up java toolchain tasks to use the alternative Java.
|
||||
// This is a related Gradle issue for the future:
|
||||
// https://github.com/gradle/gradle/issues/1652
|
||||
JvmMetadataDetector jvmDetector = project.services.get(JvmMetadataDetector)
|
||||
|
||||
if (jvmGradle != jvmCurrent) {
|
||||
configure(rootProject) {
|
||||
task altJvmWarning() {
|
||||
doFirst {
|
||||
|
||||
def jvmInfo = { JavaInfo javaInfo ->
|
||||
JvmInstallationMetadata jvmMetadata = jvmDetector.getMetadata(javaInfo.javaHome)
|
||||
return "${jvmMetadata.languageVersion} (${jvmMetadata.displayName} ${jvmMetadata.runtimeVersion}, home at: ${jvmMetadata.javaHome})"
|
||||
}
|
||||
|
||||
logger.warn("""NOTE: Alternative java toolchain will be used for compilation and tests:
|
||||
Project will use Java ${altJvm.javaVersion} from: ${altJvm.installationDirectory}
|
||||
Gradle runs with Java ${currentJvm.javaVersion} from: ${currentJvm.installationDirectory}
|
||||
Project will use ${jvmInfo(jvmCurrent)}
|
||||
Gradle runs with ${jvmInfo(jvmGradle)}
|
||||
""")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Set up toolchain-dependent tasks to use the alternative JVM.
|
||||
allprojects {
|
||||
// Any tests
|
||||
tasks.withType(Test) {
|
||||
dependsOn ":altJvmWarning"
|
||||
executable = altJvm.javaExecutable
|
||||
executable = jvmCurrent.javaExecutable
|
||||
}
|
||||
|
||||
// Any javac compilation tasks
|
||||
tasks.withType(JavaCompile) {
|
||||
dependsOn ":altJvmWarning"
|
||||
options.fork = true
|
||||
options.forkOptions.javaHome = altJvm.installationDirectory.asFile
|
||||
options.forkOptions.javaHome = jvmCurrent.javaHome
|
||||
}
|
||||
|
||||
// Javadoc compilation.
|
||||
def javadocExecutable = altJvm.jdk.get().javadocExecutable.asFile
|
||||
def javadocExecutable = jvmCurrent.javadocExecutable
|
||||
tasks.matching { it.name == "renderJavadoc" || it.name == "renderSiteJavadoc" }.all {
|
||||
dependsOn ":altJvmWarning"
|
||||
executable = javadocExecutable
|
||||
executable = javadocExecutable.toString()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Set up root project's properties.
|
||||
rootProject.ext.runtimeJavaHome = jvmCurrent.javaHome
|
||||
rootProject.ext.runtimeJavaVersion = jvmDetector.getMetadata(jvmCurrent.javaHome).languageVersion
|
||||
|
|
|
@ -22,7 +22,7 @@ import org.gradle.util.GradleVersion
|
|||
|
||||
configure(rootProject) {
|
||||
ext {
|
||||
expectedGradleVersion = '6.8.3'
|
||||
expectedGradleVersion = '7.2'
|
||||
}
|
||||
|
||||
wrapper {
|
||||
|
|
|
@ -126,18 +126,16 @@ allprojects {
|
|||
*/
|
||||
class RatTask extends DefaultTask {
|
||||
@InputFiles
|
||||
ListProperty<ConfigurableFileTree> inputFileTrees = project.objects.listProperty(ConfigurableFileTree)
|
||||
final ListProperty<ConfigurableFileTree> inputFileTrees = project.objects.listProperty(ConfigurableFileTree)
|
||||
|
||||
@OutputFile
|
||||
RegularFileProperty xmlReport = project.objects.fileProperty().convention(
|
||||
final RegularFileProperty xmlReport = project.objects.fileProperty().convention(
|
||||
project.layout.buildDirectory.file("rat/rat-report.xml"))
|
||||
|
||||
def generateReport(File reportFile) {
|
||||
// Set up ant rat task.
|
||||
def uri = 'antlib:org.apache.rat.anttasks'
|
||||
def ratClasspath = project.rootProject.configurations.ratDeps.asPath
|
||||
ant.taskdef(resource: 'org/apache/rat/anttasks/antlib.xml', uri: uri, classpath: ratClasspath)
|
||||
def rat = NamespaceBuilder.newInstance(ant, uri)
|
||||
ant.taskdef(resource: 'org/apache/rat/anttasks/antlib.xml', classpath: ratClasspath)
|
||||
|
||||
// Collect all output files for debugging.
|
||||
String inputFileList = inputFileTrees.get().collectMany { fileTree ->
|
||||
|
@ -146,7 +144,7 @@ class RatTask extends DefaultTask {
|
|||
project.file(reportFile.path.replaceAll('.xml$', '-filelist.txt')).setText(inputFileList, "UTF-8")
|
||||
|
||||
// Run rat via ant.
|
||||
rat.report(format: 'xml', reportFile: reportFile, addDefaultLicenseMatchers: true) {
|
||||
ant.report(format: 'xml', reportFile: reportFile, addDefaultLicenseMatchers: true) {
|
||||
// Pass all gradle file trees to the ant task (Gradle's internal adapters are used).
|
||||
inputFileTrees.get().each { fileTree ->
|
||||
fileTree.addToAntBuilder(ant, 'resources', FileCollection.AntType.ResourceCollection)
|
||||
|
|
|
@ -1 +1 @@
|
|||
e996d452d2645e70c01c11143ca2d3742734a28da2bf61f25c82bdc288c9e637
|
||||
33ad4583fd7ee156f533778736fa1b4940bd83b433934d1cc4e9f608e99a6a89
|
||||
|
|
|
@ -1 +1 @@
|
|||
6.8.3
|
||||
7.2.0
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.3-all.zip
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-all.zip
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
|
|
|
@ -29,6 +29,9 @@ if "%DIRNAME%" == "" set DIRNAME=.
|
|||
set APP_BASE_NAME=%~n0
|
||||
set APP_HOME=%DIRNAME%
|
||||
|
||||
@rem Resolve any "." and ".." in APP_HOME to make it shorter.
|
||||
for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
|
||||
|
||||
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||
set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
|
||||
|
||||
|
@ -42,7 +45,7 @@ if defined JAVA_HOME goto findJavaFromJavaHome
|
|||
|
||||
set JAVA_EXE=java.exe
|
||||
%JAVA_EXE% -version >NUL 2>&1
|
||||
if "%ERRORLEVEL%" == "0" goto init
|
||||
if "%ERRORLEVEL%" == "0" goto execute
|
||||
|
||||
echo.
|
||||
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
||||
|
@ -56,7 +59,7 @@ goto fail
|
|||
set JAVA_HOME=%JAVA_HOME:"=%
|
||||
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
|
||||
|
||||
if exist "%JAVA_EXE%" goto init
|
||||
if exist "%JAVA_EXE%" goto execute
|
||||
|
||||
echo.
|
||||
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
|
||||
|
@ -66,21 +69,6 @@ echo location of your Java installation.
|
|||
|
||||
goto fail
|
||||
|
||||
:init
|
||||
@rem Get command-line arguments, handling Windows variants
|
||||
|
||||
if not "%OS%" == "Windows_NT" goto win9xME_args
|
||||
|
||||
:win9xME_args
|
||||
@rem Slurp the command line arguments.
|
||||
set CMD_LINE_ARGS=
|
||||
set _SKIP=2
|
||||
|
||||
:win9xME_args_slurp
|
||||
if "x%~1" == "x" goto execute
|
||||
|
||||
set CMD_LINE_ARGS=%*
|
||||
|
||||
:execute
|
||||
|
||||
@rem LUCENE-9266: verify and download the gradle wrapper jar if we don't have one.
|
||||
|
@ -96,7 +84,7 @@ SET GRADLE_DAEMON_CTRL=
|
|||
IF NOT EXIST "%DIRNAME%\gradle.properties" SET GRADLE_DAEMON_CTRL=--no-daemon
|
||||
|
||||
@rem Execute Gradle
|
||||
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %GRADLE_DAEMON_CTRL% %CMD_LINE_ARGS%
|
||||
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %GRADLE_DAEMON_CTRL% %*
|
||||
|
||||
:end
|
||||
@rem End local scope for the variables with windows NT shell
|
||||
|
|
|
@ -41,10 +41,9 @@ library {
|
|||
}
|
||||
|
||||
tasks.withType(CppCompile).configureEach {
|
||||
def javaHome = rootProject.ext.runtimeJava.getInstallationDirectory().getAsFile().getPath()
|
||||
def javaHome = rootProject.ext.runtimeJavaHome
|
||||
|
||||
// Assume standard openjdk layout. This means only one architecture-specific include folder
|
||||
// is present.
|
||||
// Assume standard openjdk layout. This means only one architecture-specific include folder is present.
|
||||
systemIncludes.from file("${javaHome}/include")
|
||||
|
||||
for (def path : [file("${javaHome}/include/win32")]) {
|
||||
|
|
Loading…
Reference in New Issue