| /* |
| * 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() |
| |
| if (System.getProperty("skip.lucene") as Boolean) { |
| maven { |
| name "ApacheSnapshots" |
| url 'https://repository.apache.org/content/repositories/snapshots/' |
| } |
| } |
| } |
| |
| // 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() |
| } |
| } |
| } |
| } |
| } |