lucene/gradle/hacks/dummy-outputs.gradle

42 lines
1.4 KiB
Groovy

/*
* 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.
*/
// LUCENE-9505: utility function that sets up dummy outputs for a task so that
// clean[TaskName] works and allows selective re-runs.
def 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()
}
}
}
allprojects {
tasks.matching {
it.name.startsWith("ecjLint") ||
it.name in [
"gradlewScriptsTweaked",
"validateSourcePatterns"
] }.all { Task task ->
task.logger.info("Setting up ${task.path} as no-output.")
setupDummyOutputs(task)
}
}