
The configuration to publish to Maven seems to be incompatible with the configuration for bintray, so only enable one at once. Once the GMaven publishing flow is completely set up we can remove the exoplayerPublishEnabled constant and the first branch entirely. Issue: #5246 PiperOrigin-RevId: 359056610
117 lines
4.2 KiB
Groovy
117 lines
4.2 KiB
Groovy
// 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) {
|
|
// For publishing to Bintray.
|
|
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) }
|
|
}
|
|
}
|
|
}
|
|
} else {
|
|
// For publishing to a Maven repository.
|
|
apply plugin: 'maven-publish'
|
|
afterEvaluate {
|
|
publishing {
|
|
repositories {
|
|
maven {
|
|
url = findProperty('mavenRepo') ?: "${buildDir}/repo"
|
|
}
|
|
}
|
|
publications {
|
|
release(MavenPublication) {
|
|
from components.release
|
|
artifact androidSourcesJar
|
|
groupId = 'com.google.android.exoplayer'
|
|
artifactId = releaseArtifact
|
|
version releaseVersion
|
|
pom {
|
|
name = releaseArtifact
|
|
description = releaseDescription
|
|
licenses {
|
|
license {
|
|
name = 'The Apache Software License, Version 2.0'
|
|
url = 'http://www.apache.org/licenses/LICENSE-2.0.txt'
|
|
distribution = 'repo'
|
|
}
|
|
}
|
|
developers {
|
|
developer {
|
|
name = 'The Android Open Source Project'
|
|
}
|
|
}
|
|
scm {
|
|
connection = 'scm:git:https://github.com/google/ExoPlayer.git'
|
|
url = 'https://github.com/google/ExoPlayer'
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
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("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n")
|
|
def printer = new XmlNodePrinter(writer)
|
|
printer.preserveWhitespace = true
|
|
printer.print(xml)
|
|
writer.close()
|
|
}
|
|
|
|
task androidSourcesJar(type: Jar) {
|
|
archiveClassifier.set('sources')
|
|
from android.sourceSets.main.java.srcDirs
|
|
}
|