add bintray and maven plugin to buildscript dependencies (project's build.gradle)
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.1.2'
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.2' // ADD THIS LINE
classpath 'com.github.dcendents:android-maven-gradle-plugin:1.4.1' // AND THIS LINE
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
}
}
add lines in /local.properties
bintray.apikey=<apikey>
bintray.user=<username>
create deploy.settings in module to publish
siteUrl = <url-of-site-with-information-about-library>
gitUrl = <git url>
version = x.y.z
groupId = <group id>
licenses = ['Apache-2.0'] // or something else
id = <package name>
name = <module name> // actually not used
create deploy.gradle file (WARNING: Apache-2.0 license hardcoded for .pom file)
apply plugin: 'com.github.dcendents.android-maven'
apply plugin: 'com.jfrog.bintray'
def artifact = new Properties()
artifact.load(new FileInputStream("deploy.settings"))
version=artifact.version
group=artifact.groupId
install {
repositories.mavenInstaller {
pom.project {
packaging 'aar'
groupId artifact.groupId
artifactId artifact.id
version artifact.version
name artifact.id // pom.project.name must be same as bintray.pkg.name
url artifact.siteUrl
inceptionYear '2015' // HARDCODED
licenses {
license { // HARDCODED
name 'The Apache Software License, Version 2.0'
url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
distribution 'repo'
}
}
scm {
connection artifact.gitUrl
developerConnection artifact.gitUrl
url artifact.siteUrl
}
}
}
}
def properties = new Properties()
properties.load(new FileInputStream("local.properties"))
bintray {
user = properties.getProperty("bintray.user")
key = properties.getProperty("bintray.apikey")
configurations = ['archives']
pkg {
repo = "maven"
name = artifact.id
websiteUrl = artifact.siteUrl
vcsUrl = artifact.gitUrl
licenses = artifact.licenses
publish = true
version {
name = artifact.version
}
}
}
task sourcesJar(type: Jar) {
from android.sourceSets.main.java.srcDirs
classifier = 'sources'
}
task javadoc(type: Javadoc) {
source = android.sourceSets.main.java.srcDirs
classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
}
task javadocJar(type: Jar, dependsOn: javadoc) {
classifier = 'javadoc'
from javadoc.destinationDir
// options.encoding = 'UTF-8'
}
artifacts {
archives javadocJar
archives sourcesJar
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:21.0.2'
}
add at the end of module's build.gradle
apply from: 'deploy.gradle'
run ./gradlew install - to install package into local maven repository ./gradlew bintrayUpload - to upload package to bintray