- settings.gradle.kts: comment out the foojay-resolver-convention plugin. It tries to auto-download JDK toolchains from api.foojay.io, which fails with 503 behind restrictive proxies. Re-enable at home if you want auto-provisioning. - app/build.gradle.kts: comment out jvmToolchain(17) for the same reason (triggers toolchain resolution -> foojay download). The build JDK 21 plus compileOptions(source/target 17) achieves the same result locally. - gradle-wrapper.properties: bump to gradle-9.6.1-all (matches the manually provided distribution). - .gitignore: ignore .ssl-work/ (local corporate-CA truststore).
129 lines
3.6 KiB
Kotlin
129 lines
3.6 KiB
Kotlin
plugins {
|
||
alias(libs.plugins.android.application)
|
||
alias(libs.plugins.compose.compiler)
|
||
alias(libs.plugins.hilt)
|
||
alias(libs.plugins.kotlin.serialization)
|
||
alias(libs.plugins.ksp)
|
||
alias(libs.plugins.room)
|
||
}
|
||
|
||
android {
|
||
namespace = "com.example.mitbringsl"
|
||
compileSdk = 36
|
||
|
||
defaultConfig {
|
||
applicationId = "com.example.mitbringsl"
|
||
minSdk = 26
|
||
targetSdk = 36
|
||
versionCode = 1
|
||
versionName = "1.0"
|
||
|
||
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
||
|
||
// Backend base URL – override in release build or via local.properties
|
||
buildConfigField("String", "BASE_URL", "\"http://10.0.2.2:8080/\"")
|
||
}
|
||
|
||
buildTypes {
|
||
release {
|
||
isMinifyEnabled = true
|
||
proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
|
||
// Override BASE_URL for production
|
||
buildConfigField("String", "BASE_URL", "\"https://mitbringsl.example.com/\"")
|
||
}
|
||
}
|
||
|
||
compileOptions {
|
||
sourceCompatibility = JavaVersion.VERSION_17
|
||
targetCompatibility = JavaVersion.VERSION_17
|
||
}
|
||
|
||
buildFeatures {
|
||
compose = true
|
||
buildConfig = true // needed for BASE_URL injection
|
||
aidl = false
|
||
shaders = false
|
||
}
|
||
|
||
packaging {
|
||
resources {
|
||
excludes += "/META-INF/{AL2.0,LGPL2.1}"
|
||
}
|
||
}
|
||
}
|
||
|
||
// Room schema export directory
|
||
room {
|
||
schemaDirectory("$projectDir/schemas")
|
||
}
|
||
|
||
kotlin {
|
||
// Use the JDK running Gradle instead of resolving a toolchain (avoids
|
||
// foojay-resolver downloads behind restrictive proxies). compileOptions
|
||
// above pins source/target to 17.
|
||
// jvmToolchain(17)
|
||
}
|
||
|
||
dependencies {
|
||
val composeBom = platform(libs.androidx.compose.bom)
|
||
implementation(composeBom)
|
||
androidTestImplementation(composeBom)
|
||
|
||
// Core Android
|
||
implementation(libs.androidx.core.ktx)
|
||
implementation(libs.androidx.lifecycle.runtime.ktx)
|
||
implementation(libs.androidx.activity.compose)
|
||
|
||
// Lifecycle / ViewModel
|
||
implementation(libs.androidx.lifecycle.runtime.compose)
|
||
implementation(libs.androidx.lifecycle.viewmodel.compose)
|
||
|
||
// Compose UI + Material3
|
||
implementation(libs.androidx.compose.ui)
|
||
implementation(libs.androidx.compose.ui.tooling.preview)
|
||
implementation(libs.androidx.compose.material3)
|
||
implementation(libs.androidx.compose.material.icons.extended)
|
||
debugImplementation(libs.androidx.compose.ui.tooling)
|
||
|
||
// Navigation 3
|
||
implementation(libs.androidx.navigation3.ui)
|
||
implementation(libs.androidx.navigation3.runtime)
|
||
implementation(libs.androidx.lifecycle.viewmodel.navigation3)
|
||
|
||
// Hilt (DI)
|
||
implementation(libs.hilt.android)
|
||
ksp(libs.hilt.android.compiler)
|
||
implementation(libs.hilt.navigation.compose)
|
||
|
||
// Room (local DB – source of truth)
|
||
implementation(libs.room.runtime)
|
||
implementation(libs.room.ktx)
|
||
ksp(libs.room.compiler)
|
||
|
||
// Retrofit + OkHttp (network)
|
||
implementation(libs.retrofit)
|
||
implementation(libs.retrofit.serialization)
|
||
implementation(libs.okhttp)
|
||
implementation(libs.okhttp.logging)
|
||
|
||
// Kotlinx Serialization (JSON)
|
||
implementation(libs.kotlinx.serialization.json)
|
||
|
||
// Coroutines
|
||
implementation(libs.kotlinx.coroutines.android)
|
||
|
||
// WorkManager (background sync)
|
||
implementation(libs.workmanager.ktx)
|
||
implementation(libs.hilt.work)
|
||
ksp(libs.hilt.work.compiler)
|
||
|
||
// Tests
|
||
testImplementation(libs.junit)
|
||
testImplementation(libs.kotlinx.coroutines.test)
|
||
androidTestImplementation(libs.androidx.test.core)
|
||
androidTestImplementation(libs.androidx.test.ext.junit)
|
||
androidTestImplementation(libs.androidx.test.runner)
|
||
androidTestImplementation(libs.androidx.test.espresso.core)
|
||
androidTestImplementation(libs.androidx.compose.ui.test.junit4)
|
||
debugImplementation(libs.androidx.compose.ui.test.manifest)
|
||
}
|