build.gradle 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. buildscript {
  2. ext.kotlin_version = '1.8.22'
  3. repositories {
  4. google()
  5. mavenCentral()
  6. }
  7. dependencies {
  8. classpath 'com.android.tools.build:gradle:8.1.0'
  9. classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
  10. }
  11. }
  12. allprojects {
  13. repositories {
  14. google()
  15. mavenCentral()
  16. }
  17. }
  18. rootProject.buildDir = '../build'
  19. subprojects {
  20. project.buildDir = "${rootProject.buildDir}/${project.name}"
  21. // Ajuste de dependencias
  22. project.configurations.all {
  23. resolutionStrategy.eachDependency { details ->
  24. if (details.requested.group == 'com.android.support' && !details.requested.name.contains('multidex')) {
  25. details.useVersion "27.1.1"
  26. }
  27. if (details.requested.group == "org.jetbrains.kotlin") {
  28. details.useVersion "1.8.22"
  29. }
  30. }
  31. }
  32. // Ajuste del namespace y eliminación del atributo 'package' en manifests
  33. project.plugins.withId("com.android.library") {
  34. project.android {
  35. if (namespace == null || namespace.isEmpty()) {
  36. namespace = "${project.group}.${project.name}".replace('-', '_')
  37. }
  38. project.tasks.configureEach { task ->
  39. if (task.name.contains("processDebugManifest") || task.name.contains("processReleaseManifest")) {
  40. task.doFirst {
  41. File manifestFile = file("${projectDir}/src/main/AndroidManifest.xml")
  42. if (manifestFile.exists()) {
  43. String manifestContent = manifestFile.text
  44. if (manifestContent.contains('package=')) {
  45. manifestContent = manifestContent.replaceAll(/package="[^"]*"/, "")
  46. manifestFile.write(manifestContent)
  47. println "Removed 'package' attribute from ${manifestFile}"
  48. }
  49. }
  50. }
  51. }
  52. }
  53. }
  54. }
  55. // Fuerza Java 17 en proyectos Android
  56. project.plugins.withId("com.android.application") {
  57. project.android {
  58. compileOptions {
  59. sourceCompatibility JavaVersion.VERSION_17
  60. targetCompatibility JavaVersion.VERSION_17
  61. }
  62. }
  63. }
  64. project.plugins.withId("com.android.library") {
  65. project.android {
  66. compileOptions {
  67. sourceCompatibility JavaVersion.VERSION_17
  68. targetCompatibility JavaVersion.VERSION_17
  69. }
  70. }
  71. }
  72. // Fuerza Kotlin JVM target a 17
  73. project.plugins.withId("org.jetbrains.kotlin.jvm") {
  74. project.tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).configureEach {
  75. kotlinOptions {
  76. jvmTarget = "17"
  77. }
  78. }
  79. }
  80. project.plugins.withId("org.jetbrains.kotlin.android") {
  81. project.tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).configureEach {
  82. kotlinOptions {
  83. jvmTarget = "17"
  84. }
  85. }
  86. }
  87. // Fuerza Java para proyectos con plugin 'java'
  88. project.plugins.withId("java") {
  89. java {
  90. toolchain {
  91. languageVersion = JavaLanguageVersion.of(17)
  92. }
  93. }
  94. }
  95. // Fuerza nivel de compatibilidad en tareas Java
  96. project.tasks.withType(JavaCompile).configureEach {
  97. sourceCompatibility = JavaVersion.VERSION_17
  98. targetCompatibility = JavaVersion.VERSION_17
  99. }
  100. }
  101. subprojects {
  102. project.evaluationDependsOn(':app')
  103. }
  104. tasks.register("clean", Delete) {
  105. delete rootProject.buildDir
  106. }