ext { bintrayUserOrg = 'facebook' bintrayRepo = 'maven' siteURL = "https://facebook.github.io/yoga/" projectLicenses = { license { name 'BSD License' url 'https://github.com/facebook/yoga/blob/master/LICENSE' distribution 'repo' } } } def getBintrayUsername() { return hasProperty('bintrayUsername') ? property('bintrayUsername') : System.getenv('BINTRAY_USERNAME') } def getBintrayApiKey() { return hasProperty('bintrayApiKey') ? property('bintrayApiKey') : System.getenv('BINTRAY_API_KEY') } def getBintrayGpgPassword() { return hasProperty('bintrayGpgPassword') ? property('bintrayGpgPassword') : System.getenv('BINTRAY_GPG_PASSWORD') } def dryRunOnly() { return hasProperty('dryRun') ? property('dryRun').toBoolean() : false } def pomConfig = { licenses { // TODO Can we grab this from above? license { name 'BSD License' url 'https://github.com/facebook/yoga/blob/master/LICENSE' distribution 'repo' } } } publishing { publications { primaryPublication(MavenPublication) { groupId group artifact(sourcesJar) artifact(javadocJar) pom.packaging='aar' pom.withXml { def root = asNode() root.appendNode('name', 'Yoga') root.appendNode('url', siteURL) root.children().last() + pomConfig def dependenciesNode = root.appendNode('dependencies') //Iterate over the compile dependencies (we don't want the test ones), adding a node for each configurations.compile.allDependencies.each { if(it.group != null && (it.name != null || "unspecified".equals(it.name)) && it.version != null) { def dependencyNode = dependenciesNode.appendNode('dependency') dependencyNode.appendNode('groupId', it.group) dependencyNode.appendNode('artifactId', it.name) dependencyNode.appendNode('version', it.version) } } } } } } bintray { user = getBintrayUsername() key = getBintrayApiKey() publications = ['primaryPublication'] configurations = ['archives'] pkg { repo = bintrayRepo userOrg = bintrayUserOrg name = project.bintrayName dryRun = dryRunOnly() licenses = projectLicenses override = true publish = true publicDownloadNumbers = true version { name = project.version released = new Date() gpg { sign = true passphrase = getBintrayGpgPassword() } } } }