From d03e4fe635f836a352c65bde50609bd277e2fb6d Mon Sep 17 00:00:00 2001 From: Sam Stern Date: Wed, 13 Dec 2017 08:46:51 -0800 Subject: [PATCH 1/2] Rewrite POM generation Change-Id: Iab2ff5dccb6e8a46012080166bb7686674e706fc --- build.gradle | 4 +- easypermissions/bintray.gradle | 82 ++++++++++++++++++++++++++++++++++ easypermissions/build.gradle | 1 - easypermissions/maven.gradle | 58 ------------------------ 4 files changed, 83 insertions(+), 62 deletions(-) delete mode 100644 easypermissions/maven.gradle diff --git a/build.gradle b/build.gradle index 9cd42f3..59d7a26 100644 --- a/build.gradle +++ b/build.gradle @@ -6,8 +6,6 @@ buildscript { dependencies { classpath 'com.android.tools.build:gradle:3.0.1' - - classpath 'com.github.dcendents:android-maven-gradle-plugin:1.5' classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.7.3' } } @@ -31,7 +29,7 @@ ext { mavenGroup = 'pub.devrel' mavenArtifactId = 'easypermissions' - mavenVersion = '1.1.0' + mavenVersion = '1.1.1-SNAPSHOT' bintrayOrg = 'easygoogle' diff --git a/easypermissions/bintray.gradle b/easypermissions/bintray.gradle index 1f04004..d26d874 100644 --- a/easypermissions/bintray.gradle +++ b/easypermissions/bintray.gradle @@ -1,8 +1,90 @@ apply plugin: 'com.jfrog.bintray' +apply plugin: 'maven-publish' group = mavenGroup version = mavenVersion +task sourcesJar(type: Jar) { + from android.sourceSets.main.java.srcDirs + classifier = 'sources' +} + +task javadoc(type: Javadoc) { + source = android.sourceSets.main.java.srcDirs + classpath += configurations.compile + classpath += project.files(android.getBootClasspath().join(File.pathSeparator)) + + failOnError = false +} + +task javadocJar(type: Jar, dependsOn: javadoc) { + classifier = 'javadoc' + from javadoc.destinationDir +} + +artifacts { + archives sourcesJar + archives javadocJar +} + +publishing { + publications { + library(MavenPublication) { + + groupId mavenGroup + artifactId mavenArtifactId + version mavenVersion + + artifact "$buildDir/outputs/aar/$mavenArtifactId-release.aar" + artifact javadocJar + artifact sourcesJar + + pom.withXml { + // Name + asNode().appendNode('name', "EasyPermissions") + + // Description + asNode().appendNode('description', 'A wrapper library for basic Android M system permissions logic') + + // URL + asNode().appendNode('url', 'https://github.com/googlesamples/easypermissions') + + // Inception Year + asNode().appendNode('inceptionYear', '2015') + + // Licenses + def license = asNode().appendNode('licenses').appendNode('license') + license.appendNode('name', 'The Apache Software License, Version 2.0') + license.appendNode('url', 'http://www.apache.org/licenses/LICENSE-2.0.txt') + license.appendNode('distribution', 'repo') + + // Developers + def developer = asNode().appendNode('developers').appendNode('developer') + developer.appendNode('name', 'Google') + + // SCM + def scm = asNode().appendNode('scm') + scm.appendNode('connection', 'https://github.com/googlesamples/easypermissions.git') + scm.appendNode('url', 'https://github.com/googlesamples/easypermissions') + + // Dependencies + def dependenciesNode = asNode().getAt('dependencies')[0] + if (dependenciesNode == null) { + dependenciesNode = asNode().appendNode('dependencies') + } + + // Add all that are 'compile' + configurations.api.allDependencies.each { + def dependencyNode = dependenciesNode.appendNode('dependency') + dependencyNode.appendNode('groupId', it.group) + dependencyNode.appendNode('artifactId', it.name) + dependencyNode.appendNode('version', it.version) + } + } + } + } +} + bintray { user = hasProperty('BINTRAY_USER') ? getProperty('BINTRAY_USER') : System.getenv('BINTRAY_USER') key = hasProperty('BINTRAY_KEY') ? getProperty('BINTRAY_KEY') : System.getenv('BINTRAY_KEY') diff --git a/easypermissions/build.gradle b/easypermissions/build.gradle index edda611..73731e5 100644 --- a/easypermissions/build.gradle +++ b/easypermissions/build.gradle @@ -27,5 +27,4 @@ dependencies { testImplementation 'org.robolectric:robolectric:3.5.1' } -apply from: 'maven.gradle' apply from: 'bintray.gradle' diff --git a/easypermissions/maven.gradle b/easypermissions/maven.gradle deleted file mode 100644 index a2ad16b..0000000 --- a/easypermissions/maven.gradle +++ /dev/null @@ -1,58 +0,0 @@ -apply plugin: 'com.github.dcendents.android-maven' - -install { - repositories.mavenInstaller { - pom.project { - name projectName - description projectDesc - url githubUrl - inceptionYear '2015' - - packaging 'aar' - groupId mavenGroup - artifactId mavenArtifactId - version mavenVersion - - licenses { - license { - name 'The Apache Software License, Version 2.0' - url 'http://www.apache.org/licenses/LICENSE-2.0.txt' - distribution 'repo' - } - } - scm { - connection "${githubUrl}.git" - url githubUrl - - } - developers { - developer { - name 'Google' - } - } - } - } -} - -task sourcesJar(type: Jar) { - from android.sourceSets.main.java.srcDirs - classifier = 'sources' -} - -task javadoc(type: Javadoc) { - source = android.sourceSets.main.java.srcDirs - classpath += configurations.compile - classpath += project.files(android.getBootClasspath().join(File.pathSeparator)) - - failOnError = false -} - -task javadocJar(type: Jar, dependsOn: javadoc) { - classifier = 'javadoc' - from javadoc.destinationDir -} - -artifacts { - archives sourcesJar - archives javadocJar -} From 771fdc25eb5b46fa3554f4c2304d372faf594f43 Mon Sep 17 00:00:00 2001 From: Sam Stern Date: Wed, 13 Dec 2017 09:00:14 -0800 Subject: [PATCH 2/2] Add pom task and prepareArtifacts task Change-Id: I7aa333dddb28d5cd81a035ba1cf7ae72b07c84b5 --- easypermissions/bintray.gradle | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/easypermissions/bintray.gradle b/easypermissions/bintray.gradle index d26d874..94e3187 100644 --- a/easypermissions/bintray.gradle +++ b/easypermissions/bintray.gradle @@ -89,6 +89,14 @@ bintray { user = hasProperty('BINTRAY_USER') ? getProperty('BINTRAY_USER') : System.getenv('BINTRAY_USER') key = hasProperty('BINTRAY_KEY') ? getProperty('BINTRAY_KEY') : System.getenv('BINTRAY_KEY') + filesSpec { + from "$buildDir/publications/library/pom-default.xml" + into "pub/devrel/$mavenArtifactId/$mavenVersion/" + rename { String fileName -> + "${mavenArtifactId}-${mavenVersion}.pom" + } + } + configurations = [ 'archives' ] pkg { @@ -104,3 +112,10 @@ bintray { } } } + +afterEvaluate { project -> + def pomTask = "generatePomFileForLibraryPublication" + + // Convenience task to prepare everything we need for releases + task prepareArtifacts(dependsOn: [javadocJar, sourcesJar, assembleRelease, pomTask]) {} +}