You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

build.gradle 4.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. // android/build.gradle
  2. // based on:
  3. //
  4. // * https://github.com/facebook/react-native/blob/0.60-stable/template/android/build.gradle
  5. // original location:
  6. // - https://github.com/facebook/react-native/blob/0.58-stable/local-cli/templates/HelloWorld/android/build.gradle
  7. //
  8. // * https://github.com/facebook/react-native/blob/0.60-stable/template/android/app/build.gradle
  9. // original location:
  10. // - https://github.com/facebook/react-native/blob/0.58-stable/local-cli/templates/HelloWorld/android/app/build.gradle
  11. def DEFAULT_COMPILE_SDK_VERSION = 28
  12. def DEFAULT_BUILD_TOOLS_VERSION = '28.0.3'
  13. def DEFAULT_MIN_SDK_VERSION = 16
  14. def DEFAULT_TARGET_SDK_VERSION = 28
  15. def safeExtGet(prop, fallback) {
  16. rootProject.ext.has(prop) ? rootProject.ext.get(prop) : fallback
  17. }
  18. apply plugin: 'com.android.library'
  19. apply plugin: 'maven'
  20. buildscript {
  21. // The Android Gradle plugin is only required when opening the android folder stand-alone.
  22. // This avoids unnecessary downloads and potential conflicts when the library is included as a
  23. // module dependency in an application project.
  24. // ref: https://docs.gradle.org/current/userguide/tutorial_using_tasks.html#sec:build_script_external_dependencies
  25. if (project == rootProject) {
  26. repositories {
  27. google()
  28. jcenter()
  29. }
  30. dependencies {
  31. classpath 'com.android.tools.build:gradle:3.4.1'
  32. }
  33. }
  34. }
  35. apply plugin: 'com.android.library'
  36. apply plugin: 'maven'
  37. android {
  38. compileSdkVersion safeExtGet('compileSdkVersion', DEFAULT_COMPILE_SDK_VERSION)
  39. buildToolsVersion safeExtGet('buildToolsVersion', DEFAULT_BUILD_TOOLS_VERSION)
  40. defaultConfig {
  41. minSdkVersion safeExtGet('minSdkVersion', DEFAULT_MIN_SDK_VERSION)
  42. targetSdkVersion safeExtGet('targetSdkVersion', DEFAULT_TARGET_SDK_VERSION)
  43. versionCode 1
  44. versionName "1.0"
  45. }
  46. lintOptions {
  47. abortOnError false
  48. }
  49. }
  50. repositories {
  51. // ref: https://www.baeldung.com/maven-local-repository
  52. mavenLocal()
  53. maven {
  54. // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
  55. url "$rootDir/../node_modules/react-native/android"
  56. }
  57. maven {
  58. // Android JSC is installed from npm
  59. url "$rootDir/../node_modules/jsc-android/dist"
  60. }
  61. google()
  62. jcenter()
  63. }
  64. dependencies {
  65. //noinspection GradleDynamicVersion
  66. implementation 'com.facebook.react:react-native:+' // From node_modules
  67. implementation fileTree(dir: 'libs', include: ['*.jar'])
  68. //压缩
  69. implementation 'com.zxy.android:tiny:0.0.6'
  70. implementation files('libs/posprinterconnectandsendsdk.jar')
  71. implementation files('libs/xprinterconnectandsendsdk.jar')
  72. }
  73. def configureReactNativePom(def pom) {
  74. def packageJson = new groovy.json.JsonSlurper().parseText(file('../package.json').text)
  75. pom.project {
  76. name packageJson.title
  77. artifactId packageJson.name
  78. version = packageJson.version
  79. group = "com.reactlibrary"
  80. description packageJson.description
  81. url packageJson.repository.baseUrl
  82. licenses {
  83. license {
  84. name packageJson.license
  85. url packageJson.repository.baseUrl + '/blob/master/' + packageJson.licenseFilename
  86. distribution 'repo'
  87. }
  88. }
  89. developers {
  90. developer {
  91. id packageJson.author.username
  92. name packageJson.author.name
  93. }
  94. }
  95. }
  96. }
  97. afterEvaluate { project ->
  98. // some Gradle build hooks ref:
  99. // https://www.oreilly.com/library/view/gradle-beyond-the/9781449373801/ch03.html
  100. task androidJavadoc(type: Javadoc) {
  101. source = android.sourceSets.main.java.srcDirs
  102. classpath += files(android.bootClasspath)
  103. classpath += files(project.getConfigurations().getByName('compile').asList())
  104. include '**/*.java'
  105. }
  106. task androidJavadocJar(type: Jar, dependsOn: androidJavadoc) {
  107. classifier = 'javadoc'
  108. from androidJavadoc.destinationDir
  109. }
  110. task androidSourcesJar(type: Jar) {
  111. classifier = 'sources'
  112. from android.sourceSets.main.java.srcDirs
  113. include '**/*.java'
  114. }
  115. android.libraryVariants.all { variant ->
  116. def name = variant.name.capitalize()
  117. def javaCompileTask = variant.javaCompileProvider.get()
  118. task "jar${name}"(type: Jar, dependsOn: javaCompileTask) {
  119. from javaCompileTask.destinationDir
  120. }
  121. }
  122. artifacts {
  123. archives androidSourcesJar
  124. archives androidJavadocJar
  125. }
  126. task installArchives(type: Upload) {
  127. configuration = configurations.archives
  128. repositories.mavenDeployer {
  129. // Deploy to react-native-event-bridge/maven, ready to publish to npm
  130. repository url: "file://${projectDir}/../android/maven"
  131. configureReactNativePom pom
  132. }
  133. }
  134. }