// Copyright (C) 2017 The Android Open Source Project // // Licensed 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. if (project.ext.has("exoplayerPublishEnabled") && project.ext.exoplayerPublishEnabled) { apply plugin: 'bintray-release' publish { artifactId = releaseArtifact desc = releaseDescription publishVersion = releaseVersion repoName = getBintrayRepo() userOrg = 'google' groupId = 'com.google.android.exoplayer' website = 'https://github.com/google/ExoPlayer' } gradle.taskGraph.whenReady { taskGraph -> project.tasks .findAll { task -> task.name.contains("generatePomFileFor") } .forEach { task -> task.doLast { task.outputs.files .filter { File file -> file.path.contains("publications") \ && file.name.matches("^pom-.+\\.xml\$") } .forEach { File file -> addLicense(file) } } } } } def getBintrayRepo() { boolean publicRepo = hasProperty('publicRepo') && property('publicRepo').toBoolean() return publicRepo ? 'exoplayer' : 'exoplayer-test' } static void addLicense(File pom) { def licenseNode = new Node(null, "license") licenseNode.append( new Node(null, "name", "The Apache Software License, Version 2.0")) licenseNode.append( new Node(null, "url", "http://www.apache.org/licenses/LICENSE-2.0.txt")) licenseNode.append(new Node(null, "distribution", "repo")) def licensesNode = new Node(null, "licenses") licensesNode.append(licenseNode) def xml = new XmlParser().parse(pom) xml.append(licensesNode) def writer = new PrintWriter(new FileWriter(pom)) writer.write("\n") def printer = new XmlNodePrinter(writer) printer.preserveWhitespace = true printer.print(xml) writer.close() }