Yigit Boyar | d437f7e | 2015-10-30 16:28:34 -0700 | [diff] [blame] | 1 | import groovy.xml.QName |
Yigit Boyar | b135633 | 2015-05-21 15:49:58 -0700 | [diff] [blame] | 2 | |
Yigit Boyar | 24bec1c | 2015-07-09 10:51:54 -0700 | [diff] [blame] | 3 | buildscript { |
Yigit Boyar | 9784c9a | 2015-10-12 18:59:27 -0700 | [diff] [blame] | 4 | ext.dataBindingRootFolder = project.projectDir |
Yigit Boyar | 24bec1c | 2015-07-09 10:51:54 -0700 | [diff] [blame] | 5 | apply from: 'propLoader.gradle' |
| 6 | ext.addRepos(repositories) |
Yigit Boyar | 9784c9a | 2015-10-12 18:59:27 -0700 | [diff] [blame] | 7 | if (ext.dataBindingConfig.addRemoteRepos) { |
Yigit Boyar | 24bec1c | 2015-07-09 10:51:54 -0700 | [diff] [blame] | 8 | dependencies { |
Yigit Boyar | 9784c9a | 2015-10-12 18:59:27 -0700 | [diff] [blame] | 9 | classpath "com.android.databinding:localizemaven:${dataBindingConfig.extraPluginsVersion}" |
Yigit Boyar | 24bec1c | 2015-07-09 10:51:54 -0700 | [diff] [blame] | 10 | } |
| 11 | } |
George Mount | 69cbd9e | 2015-08-26 10:46:58 -0700 | [diff] [blame] | 12 | dependencies { |
| 13 | classpath 'net.sf.proguard:proguard-gradle:5.2.1' |
| 14 | } |
Yigit Boyar | 24bec1c | 2015-07-09 10:51:54 -0700 | [diff] [blame] | 15 | } |
Yigit Boyar | d437f7e | 2015-10-30 16:28:34 -0700 | [diff] [blame] | 16 | |
Yigit Boyar | 840f0ce | 2014-12-12 16:45:00 -0800 | [diff] [blame] | 17 | subprojects { |
Yigit Boyar | d437f7e | 2015-10-30 16:28:34 -0700 | [diff] [blame] | 18 | if (dataBindingConfig.isIndependent) { |
| 19 | apply plugin: 'maven' |
| 20 | if (dataBindingConfig.addRemoteRepos && !dataBindingConfig.forGradlePlugin) { |
| 21 | apply plugin: 'com.android.databinding.localizemaven' |
| 22 | } |
| 23 | } else { |
| 24 | apply from: "${project.projectDir}/../../buildSrc/base/baseJava.gradle" |
Yigit Boyar | 63d4789 | 2015-07-10 09:03:05 -0700 | [diff] [blame] | 25 | } |
| 26 | |
Yigit Boyar | 9784c9a | 2015-10-12 18:59:27 -0700 | [diff] [blame] | 27 | if (it.name != "compilationTests") { |
| 28 | group = dataBindingConfig.group |
| 29 | version = dataBindingConfig.version |
Yigit Boyar | 9784c9a | 2015-10-12 18:59:27 -0700 | [diff] [blame] | 30 | uploadArchives { |
| 31 | repositories { |
| 32 | mavenDeployer { |
Yigit Boyar | d437f7e | 2015-10-30 16:28:34 -0700 | [diff] [blame] | 33 | repository(url: "file://${dataBindingConfig.mavenRepoDir}") |
Yigit Boyar | 9784c9a | 2015-10-12 18:59:27 -0700 | [diff] [blame] | 34 | } |
Yigit Boyar | f9e51c0 | 2015-03-12 14:30:29 -0700 | [diff] [blame] | 35 | } |
| 36 | } |
| 37 | } |
Yigit Boyar | 9784c9a | 2015-10-12 18:59:27 -0700 | [diff] [blame] | 38 | |
Yigit Boyar | 24bec1c | 2015-07-09 10:51:54 -0700 | [diff] [blame] | 39 | buildscript { |
| 40 | addRepos(repositories) |
Yigit Boyar | 24bec1c | 2015-07-09 10:51:54 -0700 | [diff] [blame] | 41 | } |
Yigit Boyar | d437f7e | 2015-10-30 16:28:34 -0700 | [diff] [blame] | 42 | |
Yigit Boyar | 24bec1c | 2015-07-09 10:51:54 -0700 | [diff] [blame] | 43 | } |
| 44 | |
Yigit Boyar | 9784c9a | 2015-10-12 18:59:27 -0700 | [diff] [blame] | 45 | if (dataBindingConfig.addRemoteRepos && !dataBindingConfig.forGradlePlugin) { |
Yigit Boyar | 5922948 | 2015-10-29 17:17:48 -0700 | [diff] [blame] | 46 | rootProject.localizeMaven { |
Yigit Boyar | 9784c9a | 2015-10-12 18:59:27 -0700 | [diff] [blame] | 47 | localRepoDir = file(dataBindingConfig.megaRepoDir) |
| 48 | otherRepoDirs = dataBindingConfig.localRepositories |
Yigit Boyar | 24bec1c | 2015-07-09 10:51:54 -0700 | [diff] [blame] | 49 | } |
Yigit Boyar | f9e51c0 | 2015-03-12 14:30:29 -0700 | [diff] [blame] | 50 | } |
| 51 | |
| 52 | task deleteRepo(type: Delete) { |
Yigit Boyar | 9784c9a | 2015-10-12 18:59:27 -0700 | [diff] [blame] | 53 | delete "${dataBindingConfig.mavenRepoDir}/${dataBindingConfig.group.replace('.', '/')}" |
Yigit Boyar | f9e51c0 | 2015-03-12 14:30:29 -0700 | [diff] [blame] | 54 | } |
| 55 | |
Yigit Boyar | ee75867 | 2015-04-16 15:12:02 -0700 | [diff] [blame] | 56 | task deletePrebuildFolder(type: Delete) { |
Yigit Boyar | 9784c9a | 2015-10-12 18:59:27 -0700 | [diff] [blame] | 57 | delete "${dataBindingConfig.prebuildFolder}" |
Yigit Boyar | ee75867 | 2015-04-16 15:12:02 -0700 | [diff] [blame] | 58 | } |
| 59 | |
Yigit Boyar | c64ae35 | 2015-04-21 14:05:41 -0700 | [diff] [blame] | 60 | task deleteEap(type: Delete) { |
Yigit Boyar | 9784c9a | 2015-10-12 18:59:27 -0700 | [diff] [blame] | 61 | delete "${dataBindingConfig.eapOutDir}" |
Yigit Boyar | c64ae35 | 2015-04-21 14:05:41 -0700 | [diff] [blame] | 62 | } |
| 63 | |
| 64 | |
Yigit Boyar | a6e4583 | 2015-03-13 15:58:53 -0700 | [diff] [blame] | 65 | def buildExtensionsTask = project.tasks.create "buildExtensionsTask", Exec |
| 66 | buildExtensionsTask.workingDir file('extensions').getAbsolutePath() |
Yigit Boyar | a6e4583 | 2015-03-13 15:58:53 -0700 | [diff] [blame] | 67 | buildExtensionsTask.commandLine './gradlew' |
Yigit Boyar | b90752c | 2015-09-28 16:42:16 -0700 | [diff] [blame] | 68 | buildExtensionsTask.args 'clean', 'uploadArchives', '--info', '--stacktrace', |
Yigit Boyar | 9784c9a | 2015-10-12 18:59:27 -0700 | [diff] [blame] | 69 | "-PuseReleaseVersion=${dataBindingConfig.inReleaseBuild ? 'true' : 'false'}", |
| 70 | "-PaddRemoteRepos=${dataBindingConfig.addRemoteRepos ? 'true' : 'false'}", |
| 71 | "-PforGradlePlugin=${dataBindingConfig.forGradlePlugin ? 'true' : 'false'}" |
Yigit Boyar | a6e4583 | 2015-03-13 15:58:53 -0700 | [diff] [blame] | 72 | buildExtensionsTask.dependsOn subprojects.uploadArchives |
| 73 | |
Yigit Boyar | ee75867 | 2015-04-16 15:12:02 -0700 | [diff] [blame] | 74 | def prepareExtensionPrebuilds = project.tasks.create "prepareExtensionPrebuilds", Exec |
| 75 | prepareExtensionPrebuilds.workingDir file('extensions').getAbsolutePath() |
| 76 | prepareExtensionPrebuilds.commandLine './gradlew' |
Yigit Boyar | b90752c | 2015-09-28 16:42:16 -0700 | [diff] [blame] | 77 | prepareExtensionPrebuilds.args 'clean', 'preparePrebuilds', '--info', '--stacktrace', |
Yigit Boyar | 9784c9a | 2015-10-12 18:59:27 -0700 | [diff] [blame] | 78 | "-PuseReleaseVersion=${dataBindingConfig.inReleaseBuild ? 'true' : 'false'}", |
| 79 | "-PaddRemoteRepos=${dataBindingConfig.addRemoteRepos ? 'true' : 'false'}", |
| 80 | "-PforGradlePlugin=${dataBindingConfig.forGradlePlugin ? 'true' : 'false'}" |
Yigit Boyar | ee75867 | 2015-04-16 15:12:02 -0700 | [diff] [blame] | 81 | prepareExtensionPrebuilds.dependsOn subprojects.uploadArchives |
| 82 | |
Yigit Boyar | f9e51c0 | 2015-03-12 14:30:29 -0700 | [diff] [blame] | 83 | file('integration-tests').listFiles().findAll { it.isDirectory() }.each { |
Yigit Boyar | a6e4583 | 2015-03-13 15:58:53 -0700 | [diff] [blame] | 84 | println("Creating run test task for ${it.getAbsolutePath()}.") |
Yigit Boyar | f9e51c0 | 2015-03-12 14:30:29 -0700 | [diff] [blame] | 85 | def testTask = project.tasks.create "runTestsOf${it.getName().capitalize()}", Exec |
Yigit Boyar | a6e4583 | 2015-03-13 15:58:53 -0700 | [diff] [blame] | 86 | testTask.workingDir it.getAbsolutePath() |
Yigit Boyar | f9e51c0 | 2015-03-12 14:30:29 -0700 | [diff] [blame] | 87 | //on linux |
| 88 | testTask.commandLine './gradlew' |
Yigit Boyar | b90752c | 2015-09-28 16:42:16 -0700 | [diff] [blame] | 89 | testTask.args 'clean', 'connectedCheck', '--info', '--stacktrace', |
Yigit Boyar | 9784c9a | 2015-10-12 18:59:27 -0700 | [diff] [blame] | 90 | "-PuseReleaseVersion=${dataBindingConfig.inReleaseBuild ? 'true' : 'false'}", |
| 91 | "-PaddRemoteRepos=${dataBindingConfig.addRemoteRepos ? 'true' : 'false'}", |
| 92 | "-PforGradlePlugin=${dataBindingConfig.forGradlePlugin ? 'true' : 'false'}" |
Yigit Boyar | f9e51c0 | 2015-03-12 14:30:29 -0700 | [diff] [blame] | 93 | testTask.dependsOn subprojects.uploadArchives |
| 94 | } |
| 95 | |
| 96 | task runIntegrationTests { |
| 97 | dependsOn tasks.findAll { task -> task.name.startsWith('runTestsOf') } |
| 98 | } |
| 99 | |
| 100 | task runAllTests { |
| 101 | dependsOn runIntegrationTests |
| 102 | } |
| 103 | |
Yigit Boyar | ee75867 | 2015-04-16 15:12:02 -0700 | [diff] [blame] | 104 | task preparePrebuilds() { |
| 105 | dependsOn deletePrebuildFolder |
| 106 | dependsOn prepareExtensionPrebuilds |
| 107 | } |
| 108 | |
Yigit Boyar | f9e51c0 | 2015-03-12 14:30:29 -0700 | [diff] [blame] | 109 | allprojects { |
| 110 | afterEvaluate { project -> |
| 111 | runAllTests.dependsOn project.tasks.findAll {task -> task.name.equals('test')} |
Yigit Boyar | a6e4583 | 2015-03-13 15:58:53 -0700 | [diff] [blame] | 112 | runAllTests.dependsOn project.tasks.findAll {task -> task.name.equals('connectedCheck')} |
Yigit Boyar | ee75867 | 2015-04-16 15:12:02 -0700 | [diff] [blame] | 113 | preparePrebuilds.dependsOn project.tasks.findAll {task -> task.name.startsWith('prebuild')} |
Yigit Boyar | f9e51c0 | 2015-03-12 14:30:29 -0700 | [diff] [blame] | 114 | } |
| 115 | } |
| 116 | |
Yigit Boyar | a6e4583 | 2015-03-13 15:58:53 -0700 | [diff] [blame] | 117 | subprojects.uploadArchives.each { it.shouldRunAfter deleteRepo } |
Yigit Boyar | ae16128 | 2015-04-21 11:02:58 -0700 | [diff] [blame] | 118 | subprojects.uploadArchives.each { it.shouldRunAfter deletePrebuildFolder } |
Yigit Boyar | 9784c9a | 2015-10-12 18:59:27 -0700 | [diff] [blame] | 119 | |
Yigit Boyar | a6e4583 | 2015-03-13 15:58:53 -0700 | [diff] [blame] | 120 | buildExtensionsTask.shouldRunAfter deleteRepo |
Yigit Boyar | 99a3d31 | 2015-03-25 12:46:05 -0700 | [diff] [blame] | 121 | tasks['runTestsOfMultiModuleTestApp'].dependsOn tasks['runTestsOfIndependentLibrary'] |
Yigit Boyar | a6e4583 | 2015-03-13 15:58:53 -0700 | [diff] [blame] | 122 | |
Yigit Boyar | f9e51c0 | 2015-03-12 14:30:29 -0700 | [diff] [blame] | 123 | |
| 124 | task rebuildRepo() { |
| 125 | dependsOn deleteRepo |
| 126 | dependsOn subprojects.uploadArchives |
Yigit Boyar | ee75867 | 2015-04-16 15:12:02 -0700 | [diff] [blame] | 127 | } |
| 128 | |
Yigit Boyar | c64ae35 | 2015-04-21 14:05:41 -0700 | [diff] [blame] | 129 | task copySamplesToEap(type : Copy) { |
| 130 | mustRunAfter deleteEap |
| 131 | from ("$projectDir/samples") { |
| 132 | exclude "**/build" |
Yigit Boyar | 2939c3b | 2015-04-23 15:03:56 -0700 | [diff] [blame] | 133 | exclude "**/local.properties" |
Yigit Boyar | c64ae35 | 2015-04-21 14:05:41 -0700 | [diff] [blame] | 134 | } |
Yigit Boyar | 9784c9a | 2015-10-12 18:59:27 -0700 | [diff] [blame] | 135 | into "${dataBindingConfig.eapOutDir}/samples" |
Yigit Boyar | c64ae35 | 2015-04-21 14:05:41 -0700 | [diff] [blame] | 136 | } |
| 137 | |
| 138 | |
| 139 | task copyMavenRepoToEap(type : Copy) { |
| 140 | mustRunAfter deleteEap |
| 141 | dependsOn rebuildRepo |
Yigit Boyar | 9784c9a | 2015-10-12 18:59:27 -0700 | [diff] [blame] | 142 | from(dataBindingConfig.mavenRepoDir) |
| 143 | into "${dataBindingConfig.eapOutDir}/${dataBindingConfig.mavenRepoName}" |
Yigit Boyar | c64ae35 | 2015-04-21 14:05:41 -0700 | [diff] [blame] | 144 | } |
| 145 | |
Yigit Boyar | 9784c9a | 2015-10-12 18:59:27 -0700 | [diff] [blame] | 146 | tasks.create(name : 'createEapdataBindingConfigFile') << { |
| 147 | def propsFile = new File("${dataBindingConfig.eapOutDir}/databinding.properties") |
Yigit Boyar | c64ae35 | 2015-04-21 14:05:41 -0700 | [diff] [blame] | 148 | Properties props = new Properties() |
Yigit Boyar | 9784c9a | 2015-10-12 18:59:27 -0700 | [diff] [blame] | 149 | props.setProperty('version', dataBindingConfig.version) |
| 150 | props.setProperty('mavenRepoName', dataBindingConfig.mavenRepoName) |
Yigit Boyar | c64ae35 | 2015-04-21 14:05:41 -0700 | [diff] [blame] | 151 | props.store(propsFile.newWriter(), null) |
| 152 | } |
| 153 | |
Yigit Boyar | c64ae35 | 2015-04-21 14:05:41 -0700 | [diff] [blame] | 154 | task batchEAP() { |
| 155 | dependsOn deleteEap |
| 156 | dependsOn copyMavenRepoToEap |
| 157 | dependsOn copySamplesToEap |
Yigit Boyar | 9784c9a | 2015-10-12 18:59:27 -0700 | [diff] [blame] | 158 | dependsOn createEapdataBindingConfigFile |
Yigit Boyar | 24bec1c | 2015-07-09 10:51:54 -0700 | [diff] [blame] | 159 | } |
George Mount | 69cbd9e | 2015-08-26 10:46:58 -0700 | [diff] [blame] | 160 | |
Yigit Boyar | d437f7e | 2015-10-30 16:28:34 -0700 | [diff] [blame] | 161 | def findChildByTag(node, tag) { |
| 162 | return node.children().find { |
| 163 | it.name().getLocalPart().equals(tag) |
| 164 | } |
| 165 | } |
| 166 | |
George Mount | 69cbd9e | 2015-08-26 10:46:58 -0700 | [diff] [blame] | 167 | def fullJar(project) { |
| 168 | def localizeTask = project.parent.tasks.findByName('localizeDependencies') |
| 169 | if (localizeTask != null) { |
| 170 | localizeTask.dependsOn project.tasks.findByName('buildLicenseNotice') |
| 171 | } |
Yigit Boyar | 04ea158 | 2016-03-28 15:58:45 -0700 | [diff] [blame] | 172 | if (!dataBindingConfig.inReleaseBuild) { |
George Mount | 69cbd9e | 2015-08-26 10:46:58 -0700 | [diff] [blame] | 173 | return |
| 174 | } |
| 175 | def jarName = project.uploadArchives.repositories.mavenDeployer.pom.artifactId |
| 176 | def workingDir = "${project.buildDir}/intermediates/fullJar" |
| 177 | def fatJar = "${workingDir}/${jarName}-fat.jar" |
| 178 | def proguardJar = "${workingDir}/${jarName}-proguard.jar" |
| 179 | def jarJar = project.jar.archivePath |
Yigit Boyar | 04ea158 | 2016-03-28 15:58:45 -0700 | [diff] [blame] | 180 | def runProguard = dataBindingConfig.runProguard |
George Mount | 69cbd9e | 2015-08-26 10:46:58 -0700 | [diff] [blame] | 181 | |
| 182 | project.configurations { |
| 183 | jarJarArchives |
| 184 | } |
| 185 | |
| 186 | project.tasks.create(name: 'fatJar', type: Jar) { |
| 187 | baseName = jarName + '-fat' |
| 188 | doFirst { |
| 189 | file(workingDir).mkdirs() |
| 190 | } |
| 191 | def deps = new HashSet<ResolvedDependency>() |
| 192 | project.configurations.compile.resolvedConfiguration.firstLevelModuleDependencies.each { |
| 193 | if (!it.moduleGroup.startsWith('com.android.tools')) { |
| 194 | deps.addAll(it.allModuleArtifacts) |
| 195 | } |
| 196 | } |
Yigit Boyar | 499caca | 2015-10-30 17:09:12 +0000 | [diff] [blame] | 197 | from { deps.findAll { !it.name.contains('baseLibrary') && !it.name.contains("juniversalchardet")}.collect { |
George Mount | 69cbd9e | 2015-08-26 10:46:58 -0700 | [diff] [blame] | 198 | it.file.isDirectory() ? it.file : project.zipTree(it.file) |
| 199 | } } { |
| 200 | exclude "META-INF/maven/**" |
| 201 | exclude "META-INF/MANIFEST.MF" |
| 202 | exclude "META-INF/LICENSE.txt" |
| 203 | exclude "META-INF/NOTICE.txt" |
| 204 | exclude "META-INF/services/javax.annotation.processing.Processor" |
| 205 | exclude "**/*.stg" |
| 206 | } |
| 207 | archiveName "${baseName}.jar" |
| 208 | destinationDir = new File(workingDir) |
| 209 | with project.jar |
| 210 | } |
Yigit Boyar | 04ea158 | 2016-03-28 15:58:45 -0700 | [diff] [blame] | 211 | /** |
| 212 | * not used unless jarJarFile is changed to use proguarded version instead. |
| 213 | */ |
George Mount | 69cbd9e | 2015-08-26 10:46:58 -0700 | [diff] [blame] | 214 | project.tasks.create(name: 'proguard', type: proguard.gradle.ProGuardTask) { |
| 215 | dependsOn 'fatJar' |
| 216 | |
| 217 | injars fatJar |
| 218 | outjars proguardJar |
| 219 | |
| 220 | configuration '../proguard.cfg' |
| 221 | } |
| 222 | |
| 223 | project.tasks.create(name: 'jarJarFile') { |
Yigit Boyar | 04ea158 | 2016-03-28 15:58:45 -0700 | [diff] [blame] | 224 | dependsOn runProguard ? 'proguard' : 'fatJar' |
George Mount | 69cbd9e | 2015-08-26 10:46:58 -0700 | [diff] [blame] | 225 | dependsOn project.jar |
Yigit Boyar | 04ea158 | 2016-03-28 15:58:45 -0700 | [diff] [blame] | 226 | def inputLibrary = runProguard ? proguardJar : fatJar |
George Mount | 69cbd9e | 2015-08-26 10:46:58 -0700 | [diff] [blame] | 227 | def outputLibrary = jarJar |
| 228 | inputs.file(inputLibrary) |
| 229 | outputs.file(outputLibrary) |
| 230 | |
| 231 | doLast { |
Yigit Boyar | 9784c9a | 2015-10-12 18:59:27 -0700 | [diff] [blame] | 232 | def jarJarLibrary = new File(dataBindingConfig.externalPrebuiltsBase, |
George Mount | 195a49a | 2016-04-26 16:47:27 -0700 | [diff] [blame] | 233 | 'tools/common/m2/repository/com/googlecode/jarjar/jarjar/1.4/jarjar-1.4.jar'). |
George Mount | 69cbd9e | 2015-08-26 10:46:58 -0700 | [diff] [blame] | 234 | getCanonicalPath() |
| 235 | // in Ant |
| 236 | ant.taskdef(name: "jarjarIt", |
| 237 | classname: 'com.tonicsystems.jarjar.JarJarTask', |
| 238 | classpath: jarJarLibrary) |
| 239 | // start jarjar task |
| 240 | ant.jarjarIt(jarfile: outputLibrary) { |
| 241 | // input is our inputLibrary |
| 242 | zipfileset(src: inputLibrary) |
| 243 | // rule to repackage antlr to new package |
Yigit Boyar | 15b6682 | 2016-04-07 15:16:07 -0700 | [diff] [blame] | 244 | rule pattern: 'org.antlr.**', result: 'com.google.repacked.org.antlr.@1' |
Yigit Boyar | 499caca | 2015-10-30 17:09:12 +0000 | [diff] [blame] | 245 | rule pattern: 'org.abego.treelayout.**', result: 'com.google.repacked.treelayout.@1' |
George Mount | 69cbd9e | 2015-08-26 10:46:58 -0700 | [diff] [blame] | 246 | // rule to repackage commons |
| 247 | rule pattern: 'org.apache.**', result: 'com.google.repacked.apache.@1' |
| 248 | rule pattern: 'kotlin.**', result: 'com.google.repacked.kotlin.@1' |
| 249 | } |
| 250 | } |
| 251 | } |
| 252 | |
Yigit Boyar | 04ea158 | 2016-03-28 15:58:45 -0700 | [diff] [blame] | 253 | def setupUpload = { uploadTask -> |
| 254 | uploadTask.dependsOn 'jarJarFile' |
| 255 | uploadTask.repositories { |
| 256 | mavenDeployer { |
| 257 | pom.whenConfigured { pom -> |
| 258 | pom.dependencies.removeAll { dep -> |
| 259 | def isBaseLibrary = dep.groupId == 'com.android.databinding' && |
| 260 | dep.artifactId == 'baseLibrary' |
| 261 | def isGradle = dep.groupId == 'com.android.tools.build' && |
| 262 | dep.artifactId == 'gradle' |
| 263 | def isChardet = dep.groupId == 'com.googlecode.juniversalchardet' && |
| 264 | dep.artifactId == 'juniversalchardet' |
| 265 | return !isBaseLibrary && !isGradle && !isChardet |
| 266 | } |
George Mount | 69cbd9e | 2015-08-26 10:46:58 -0700 | [diff] [blame] | 267 | } |
| 268 | } |
| 269 | } |
Yigit Boyar | 04ea158 | 2016-03-28 15:58:45 -0700 | [diff] [blame] | 270 | uploadTask.outputs.upToDateWhen { false } // force it to re-run all the time. |
Yigit Boyar | d437f7e | 2015-10-30 16:28:34 -0700 | [diff] [blame] | 271 | } |
Yigit Boyar | 04ea158 | 2016-03-28 15:58:45 -0700 | [diff] [blame] | 272 | |
| 273 | if (project.publishLocal != null) { |
| 274 | setupUpload(project.publishLocal) |
| 275 | } |
| 276 | if (project.uploadArchives != null) { |
| 277 | setupUpload(project.uploadArchives) |
| 278 | } |
| 279 | |
Yigit Boyar | d437f7e | 2015-10-30 16:28:34 -0700 | [diff] [blame] | 280 | project.bintrayUpload.dependsOn 'jarJarFile' |
| 281 | project.publishing.publications.mavenJava(MavenPublication) { |
| 282 | pom.withXml { |
| 283 | def deps = findChildByTag(asNode(), "dependencies") |
| 284 | if (deps == null) { |
| 285 | throw new IllegalArgumentException("cannot find dependencies in pom file") |
| 286 | } |
| 287 | def unwanted = deps.children().findAll { |
| 288 | def groupId = findChildByTag(it, "groupId").localText()[0] |
| 289 | def artifactId = findChildByTag(it, "artifactId").localText()[0] |
| 290 | def isBaseLibrary = groupId == 'com.android.databinding' && |
| 291 | artifactId == 'baseLibrary' |
| 292 | def isGradle = groupId == 'com.android.tools.build' && artifactId == 'gradle' |
| 293 | def isChardet = groupId == 'com.googlecode.juniversalchardet' && |
| 294 | artifactId == 'juniversalchardet' |
| 295 | return !isBaseLibrary && !isGradle && !isChardet |
| 296 | } |
| 297 | unwanted.each { |
| 298 | deps.remove(it) |
| 299 | } |
| 300 | } |
George Mount | 69cbd9e | 2015-08-26 10:46:58 -0700 | [diff] [blame] | 301 | } |
| 302 | } |