/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ allprojects { apply plugin: 'base' group "org.apache" // Repositories to fetch dependencies from. repositories { mavenCentral() } // Artifacts will have names after full gradle project path // so :solr:core will have solr-core.jar, etc. project.archivesBaseName = project.path.replaceAll("^:", "").replace(':', '-') ext { // Utility method to support passing overrides via -P or -D. propertyOrDefault = { propName, defValue -> def result if (project.hasProperty(propName)) { result = project.getProperty(propName) } else if (System.properties.containsKey(propName)) { result = System.properties.get(propName) } else if (defValue instanceof Closure) { result = defValue.call() } else { result = defValue } return result } // System environment variable or default. envOrDefault = { envName, defValue -> return Objects.requireNonNullElse(System.getenv(envName), defValue); } // Either a project, system property, environment variable or default value. propertyOrEnvOrDefault = { propName, envName, defValue -> return propertyOrDefault(propName, envOrDefault(envName, defValue)); } // Locate script-relative resource folder. This is context-sensitive so pass // the right buildscript (top-level). scriptResources = { buildscript -> return file(buildscript.sourceFile.absolutePath.replaceAll('.gradle$', "")) } // LUCENE-9505: utility function that sets up dummy outputs for a task so that // clean[TaskName] works and allows selective re-runs. setupDummyOutputs = { Task task -> File dummyOutput = file("${task.project.buildDir}/tasks/${task.name}/dummy-output.txt") task.outputs.file(dummyOutput) task.doLast { if (!dummyOutput.exists()) { dummyOutput.createNewFile() } } } } }