Guest User

Untitled

a guest
Apr 23rd, 2018
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.16 KB | None | 0 0
  1. // Top-level build file
  2. buildscript {
  3. repositories {
  4. jcenter()
  5. mavenCentral()
  6. maven { url 'https://maven.fabric.io/public' }
  7. maven {
  8. url 'https://maven.google.com/'
  9. name 'Google'
  10. }
  11. google()
  12. }
  13. dependencies {
  14. classpath 'com.android.tools.build:gradle:3.1.1'
  15. classpath 'org.ajoberstar:gradle-git:0.6.3'
  16. //noinspection GradleDynamicVersion
  17. classpath 'io.fabric.tools:gradle:1.+'
  18. classpath 'me.tatarka:gradle-retrolambda:3.2.5'
  19. classpath 'com.google.gms:google-services:3.0.0'
  20. }
  21. }
  22.  
  23. // Used to disable preDex, will speed up clean build but slow down incremental builds.
  24. project.ext.preDexLibs = !project.hasProperty('disablePreDex')
  25.  
  26. subprojects {
  27. project.plugins.whenPluginAdded { plugin ->
  28. if ("com.android.build.gradle.AppPlugin".equals(plugin.class.name)) {
  29. project.android.dexOptions.preDexLibraries = rootProject.ext.preDexLibs
  30. } else if ("com.android.build.gradle.LibraryPlugin".equals(plugin.class.name)) {
  31. project.android.dexOptions.preDexLibraries = rootProject.ext.preDexLibs
  32. }
  33. }
  34. }
  35.  
  36. allprojects {
  37. repositories {
  38. jcenter()
  39. }
  40. }
  41.  
  42. apply plugin: 'com.android.library'
  43.  
  44. setVersion '1.2'
  45.  
  46. repositories {
  47. mavenCentral()
  48. maven {
  49. url 'https://maven.google.com/'
  50. name 'Google'
  51. }
  52. }
  53.  
  54. configurations {
  55. classpaths
  56. }
  57.  
  58. def sharedManifest = manifest {
  59. attributes('Specification-Title': 'My App',
  60. 'Specification-Version': '2.1',
  61. 'Specification-Vendor': 'App Vendor',
  62. 'Implementation-Title': 'App',
  63. 'Implementation-Version': '2.1',
  64. 'Implementation-Vendor': 'App Vendor')
  65. }
  66.  
  67. android {
  68. compileSdkVersion 27
  69. buildToolsVersion "27.0.3"
  70.  
  71. defaultConfig {
  72. minSdkVersion 15
  73. targetSdkVersion 27
  74. consumerProguardFile file("proguard-project.txt")
  75. }
  76.  
  77. buildTypes {
  78. debug {
  79. testCoverageEnabled true
  80. }
  81. }
  82.  
  83. // work-around for duplicate files during packaging of APK
  84. packagingOptions {
  85. exclude 'META-INF/LICENSE'
  86. exclude 'META-INF/NOTICE'
  87. }
  88.  
  89. compileOptions {
  90. sourceCompatibility JavaVersion.VERSION_1_8
  91. targetCompatibility JavaVersion.VERSION_1_8
  92. }
  93. }
  94.  
  95. dependencies {
  96. implementation project(':exclude-doclet')
  97. implementation 'com.android.support:support-annotations:27.0.2'
  98. implementation 'com.android.support:support-v4:27.0.2'
  99. implementation 'commons-io:commons-io:2.4'
  100. implementation 'com.squareup.retrofit2:retrofit:2.1.0'
  101. implementation 'com.squareup.retrofit2:converter-gson:2.1.0'
  102. implementation 'com.squareup.retrofit2:adapter-rxjava:2.1.0'
  103. implementation 'com.google.code.gson:gson:2.4'
  104. implementation 'io.reactivex:rxandroid:1.2.1'
  105. implementation 'io.reactivex:rxjava:1.1.7'
  106. classpaths files(new File(System.getenv("ANDROID_HOME") + "/platforms/android-${Integer.parseInt(rootProject.ANDROID_BUILD_SDK_VERSION)}/android.jar"),
  107. new File(System.getenv("ANDROID_HOME") + "/extras/android/support/v4/android-support-v4.jar"))
  108. testImplementation 'junit:junit:4.12'
  109. testImplementation 'org.mockito:mockito-core:1.10.19'
  110. androidTestImplementation 'junit:junit:4.12'
  111. androidTestImplementation 'org.mockito:mockito-core:1.10.19'
  112. }
  113.  
  114. android.libraryVariants.all { variant ->
  115. String name = variant.buildType.name
  116. task("generate${name.capitalize()}Javadoc", type: Javadoc) {
  117. dependsOn variant.javaCompiler
  118. description "Generates Javadoc for $project.name."
  119.  
  120. title "App $project.version"
  121. source = variant.javaCompiler.source
  122. classpath += project.files(variant.javaCompiler.classpath.files, android.getBootClasspath())
  123. List<File> pathList = new ArrayList<File>()
  124. pathList.add(new File(project(':exclude-doclet').libsDir,
  125. "ExcludeDoclet-${project(':exclude-doclet').version}.jar"))
  126. options {
  127. doclet = "ExcludeDoclet"
  128. docletpath = pathList
  129. encoding = "UTF-8"
  130. classpath = configurations.classpaths.files.asType(List)
  131. linksOffline "http://developer.android.com/reference", "${android.sdkDirectory}/docs/reference"
  132. links "http://docs.oracle.com/javase/7/docs/api/",
  133. "http://square.github.io/retrofit/2.x/retrofit/",
  134. "http://square.github.io/okhttp/2.x/okhttp/",
  135. "http://reactivex.io/RxJava/javadoc/"
  136. memberLevel = JavadocMemberLevel.PUBLIC
  137. header = "AppKit"
  138. }
  139. exclude '**/BuildConfig.java'
  140. exclude '**/R.java'
  141. failOnError true
  142.  
  143. doLast {
  144. copy {
  145. from 'src/javadoc/assets/'
  146. into destinationDir.path + '/assets/'
  147. }
  148. }
  149. }
  150.  
  151. task("assemble${name.capitalize()}JavadocJar", type: Jar) {
  152. dependsOn "generate${name.capitalize()}Javadoc"
  153. description "Assembles Jar contaning Javadoc for $project.name."
  154. from project.tasks.getByName("generate${name.capitalize()}Javadoc").destinationDir
  155. classifier = 'javadoc'
  156. manifest {
  157. from sharedManifest
  158. }
  159. }
  160.  
  161. task("assemble${name.capitalize()}Jar", type: Jar) {
  162. dependsOn variant.javaCompiler
  163. description "Assembles Jar contaning $project.name."
  164. from variant.javaCompiler.destinationDir
  165. manifest {
  166. from sharedManifest
  167. }
  168. }
  169.  
  170. artifacts {
  171. archives project.tasks.getByName("assemble${name.capitalize()}Jar")
  172. archives project.tasks.getByName("assemble${name.capitalize()}JavadocJar")
  173. }
  174. }
Add Comment
Please, Sign In to add comment