| /* |
| * 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. |
| */ |
| buildscript { |
| repositories { |
| maven { url "https://plugins.gradle.org/m2/" } |
| } |
| |
| dependencies { |
| classpath "org.ajoberstar:gradle-git:1.3.2" |
| } |
| } |
| |
| allprojects { |
| //These methods will be added to each individual project. |
| //Use this for methods that access project variables (like project.name) |
| // |
| //What is is doing is adding properties to the extra properties of the |
| //project. Each property is itself a closure. |
| ext { |
| sanitizedName = { |
| // Intended to strip off 'extensions/' from the modules so that artifacts |
| // don't end up in libs/extensions/ |
| def parts = project.name.split("/") |
| return parts[parts.length - 1]; |
| } |
| |
| disableMavenPublishing = { |
| // Use this closure when a project should not publish anything to maven. |
| afterEvaluate { |
| install.enabled = false |
| uploadArchives.enabled = false |
| } |
| } |
| disableSigning = { |
| // Use this closure when a project should not publish anything to maven. |
| afterEvaluate { |
| signArchives.enabled = false |
| } |
| } |
| |
| readScmInfo = { |
| try { |
| def git = org.ajoberstar.grgit.Grgit.open(currentDir: projectDir) |
| try { |
| return [ |
| 'Source-Repository': git.branch.getCurrent().name, |
| 'Source-Revision' : git.head().id, |
| 'Source-Date' : git.head().getDate().format('yyyy-MM-dd HH:mm:ss Z') |
| ] as Properties |
| } finally { |
| git.close() |
| } |
| } catch (IllegalArgumentException e) { |
| // if we're building from the source distribution, we don't have git so |
| // use cached info written during the assembly process |
| def buildInfo = file "$rootDir/.buildinfo" |
| if (buildInfo.exists()) { |
| def props = new Properties() |
| new FileInputStream(buildInfo).withStream { fis -> |
| props.load(fis) |
| } |
| return props |
| } |
| |
| logger.warn( '***** Unable to find Git workspace. Using default version information *****' ) |
| return [ |
| 'Source-Repository': 'UNKNOWN', |
| 'Source-Revision' : 'UNKNOWN', |
| 'Source-Date' : new Date().format('yyyy-MM-dd HH:mm:ss Z') |
| ] as Properties |
| } |
| } |
| } |
| } |