build.gradle revision 79ae2e5b4612d3af10bcadb235c86b564b5f97c1
1/* 2 * Copyright (C) 2015 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 18apply plugin: 'maven' 19 20apply plugin: 'com.android.library' 21project.ext.addDataBindingAdapters = false 22apply plugin: 'com.android.databinding' 23 24android { 25 compileSdkVersion 21 26 buildToolsVersion "21.1.2" 27 28 defaultConfig { 29 minSdkVersion 7 30 targetSdkVersion 21 31 versionCode 1 32 versionName "1.0" 33 } 34 buildTypes { 35 release { 36 minifyEnabled false 37 proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 38 } 39 } 40 41 packagingOptions { 42 exclude 'META-INF/services/javax.annotation.processing.Processor' 43 exclude 'META-INF/LICENSE.txt' 44 exclude 'META-INF/NOTICE.txt' 45 } 46} 47 48dependencies { 49 // TODO make these provided when gradle build supports them 50 // see: https://code.google.com/p/android/issues/detail?id=149268 51 compile 'com.android.support:support-v4:+' 52 compile 'com.android.support:cardview-v7:+' 53 compile 'com.android.support:appcompat-v7:+' 54} 55 56configurations { 57 jarArchives 58} 59 60//create jar tasks 61android.libraryVariants.all { variant -> 62 def name = variant.buildType.name 63 64 if (name.equals(com.android.builder.core.BuilderConstants.DEBUG)) { 65 return; // Skip debug builds. 66 } 67 def suffix = name.capitalize() 68 // @Jar version is needed to run compiler tests 69 def jarTask = project.tasks.create "jar${suffix}", Jar 70 jarTask.dependsOn variant.javaCompile 71 jarTask.from variant.javaCompile.destinationDir 72 def packageName = "com.android.databinding.library.baseAdapters" 73 def appPkgAsClass = packageName.replace('.', '/') 74 jarTask.exclude("android/databinding/layouts/*.*") 75 jarTask.exclude("$appPkgAsClass/databinding/*") 76 jarTask.exclude("$appPkgAsClass/BR.*") 77 artifacts.add('jarArchives', jarTask); 78 79 def javadocTask = project.tasks.create(name: "javadoc${suffix}", type: Javadoc) { 80 source variant.javaCompile.source 81 exclude("android/databinding/layouts/*.*") 82 exclude("$appPkgAsClass/databinding/*") 83 exclude("$appPkgAsClass/BR.*") 84 exclude("$appPkgAsClass/R.*") 85 exclude("$appPkgAsClass/BuildConfig.*") 86 classpath = files(variant.javaCompile.classpath.files) + files( 87 "${android.sdkDirectory}/platforms/${android.compileSdkVersion}/android.jar") 88 } 89 90 def javadocJarTask = project.tasks.create(name: "javadocJar${suffix}", type: Jar) { 91 classifier = 'javadoc' 92 from 'build/docs/javadoc' 93 } 94 javadocJarTask.dependsOn javadocTask 95 96 def sourcesJarTask = project.tasks.create(name: "sourceJar${suffix}", type: Jar) { 97 classifier = 'sources' 98 from android.sourceSets.main.java.srcDirs 99 } 100 101 artifacts.add('jarArchives', javadocJarTask); 102 artifacts.add('jarArchives', sourcesJarTask); 103} 104 105uploadArchives { 106} 107 108uploadJarArchives { 109 repositories { 110 mavenDeployer { 111 repository(url: "file://${config.mavenRepoDir}") 112 pom.artifactId = "adapters" 113 pom.whenConfigured { 114 println("configured pom, $it") 115 it.dependencies.clear() 116 } 117 } 118 } 119} 120 121uploadArchives.dependsOn uploadJarArchives 122task prebuild(type : Copy) { 123 dependsOn uploadArchives 124 from "$buildDir/outputs/aar/baseAdapters-release.aar" 125 into config.prebuildFolder 126 rename { String fileName -> 127 "databinding-adapters.aar" 128 } 129}