From 70530cd1e6000ceb3b99dfaf84bfb6de0cce7943 Mon Sep 17 00:00:00 2001 From: toxicbakery Date: Thu, 4 Apr 2019 15:39:19 -0400 Subject: [PATCH] #5731 Add license information to generated POM files --- build.gradle | 1 + publish.gradle | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/build.gradle b/build.gradle index f8326dd503..6ae3ccf2e6 100644 --- a/build.gradle +++ b/build.gradle @@ -44,6 +44,7 @@ allprojects { } buildDir = "${externalBuildDir}/${project.name}" } + group = 'com.google.android.exoplayer' } apply from: 'javadoc_combined.gradle' diff --git a/publish.gradle b/publish.gradle index 85cf87aa85..e82cf32552 100644 --- a/publish.gradle +++ b/publish.gradle @@ -23,6 +23,20 @@ if (project.ext.has("exoplayerPublishEnabled") 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() { @@ -30,3 +44,21 @@ def getBintrayRepo() { 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)) + def printer = new XmlNodePrinter(writer) + printer.preserveWhitespace = true + printer.print(xml) + writer.close() +}