diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 5288240..c0df3ea 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -52,7 +52,6 @@ dependencies { // Add Coroutines implementation(libs.kotlinx.coroutines.android) implementation(libs.kotlinx.coroutines.core) - implementation(libs.kotlinx.coroutines.core.common) implementation(libs.kotlinx.coroutines.play.services) // okHttp @@ -115,7 +114,6 @@ dependencies { implementation(libs.material) testImplementation(libs.junit) - androidTestImplementation(libs.androidx.junit) androidTestImplementation(libs.androidx.espresso.core) } diff --git a/build-logic/build.gradle.kts b/build-logic/build.gradle.kts new file mode 100644 index 0000000..6ceb40d --- /dev/null +++ b/build-logic/build.gradle.kts @@ -0,0 +1,22 @@ +plugins { + `kotlin-dsl` + `kotlin-dsl-precompiled-script-plugins` +} + +dependencies { + implementation(libs.android.gradle.plugin) + implementation(libs.kotlin.gradle.plugin) +} + +gradlePlugin { + plugins { + register("androidHilt") { + id = "aidoc.android.hilt" + implementationClass = "org.cazait.HiltAndroidPlugin" + } + register("kotlinHilt") { + id = "aidoc.kotlin.hilt" + implementationClass = "org.cazait.HiltKotlinPlugin" + } + } +} diff --git a/build-logic/settings.gradle.kts b/build-logic/settings.gradle.kts new file mode 100644 index 0000000..6b8f38e --- /dev/null +++ b/build-logic/settings.gradle.kts @@ -0,0 +1,12 @@ +enableFeaturePreview("TYPESAFE_PROJECT_ACCESSORS") +dependencyResolutionManagement { + repositories { + google() + mavenCentral() + } + versionCatalogs { + create("libs") { + from(files("../gradle/libs.versions.toml")) + } + } +} diff --git a/build-logic/src/main/kotlin/cazait.android.application.gradle.kts b/build-logic/src/main/kotlin/cazait.android.application.gradle.kts new file mode 100644 index 0000000..424d093 --- /dev/null +++ b/build-logic/src/main/kotlin/cazait.android.application.gradle.kts @@ -0,0 +1,9 @@ +import cazait.configureKotlinAndroid +import cazait.configureHiltAndroid + +plugins { + id("com.android.application") +} + +configureKotlinAndroid() +configureHiltAndroid() diff --git a/build-logic/src/main/kotlin/cazait.android.compose.gradle.kts b/build-logic/src/main/kotlin/cazait.android.compose.gradle.kts new file mode 100644 index 0000000..b15791a --- /dev/null +++ b/build-logic/src/main/kotlin/cazait.android.compose.gradle.kts @@ -0,0 +1,3 @@ +import cazait.configureComposeAndroid + +configureComposeAndroid() diff --git a/build-logic/src/main/kotlin/cazait.android.feature.gradle.kts b/build-logic/src/main/kotlin/cazait.android.feature.gradle.kts new file mode 100644 index 0000000..0892715 --- /dev/null +++ b/build-logic/src/main/kotlin/cazait.android.feature.gradle.kts @@ -0,0 +1,25 @@ +import cazait.configureHiltAndroid +import cazait.libs + +plugins { + id("cazait.android.library") + id("cazait.android.compose") +} + +android { + defaultConfig { + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + } +} + +configureHiltAndroid() + +dependencies { + val libs = project.extensions.libs + implementation(libs.findLibrary("hilt.navigation.compose").get()) + implementation(libs.findLibrary("androidx.navigation.compose").get()) + androidTestImplementation(libs.findLibrary("androidx.navigation.testing").get()) + + implementation(libs.findLibrary("androidx.lifecycle.viewModelCompose").get()) + implementation(libs.findLibrary("androidx.lifecycle.runtimeCompose").get()) +} diff --git a/build-logic/src/main/kotlin/cazait.android.library.gradle.kts b/build-logic/src/main/kotlin/cazait.android.library.gradle.kts new file mode 100644 index 0000000..bbbfabd --- /dev/null +++ b/build-logic/src/main/kotlin/cazait.android.library.gradle.kts @@ -0,0 +1,13 @@ +import cazait.configureCoroutineAndroid +import cazait.configureHiltAndroid +import cazait.configureKotest +import cazait.configureKotlinAndroid + +plugins { + id("com.android.library") +} + +configureKotlinAndroid() +configureKotest() +configureCoroutineAndroid() +configureHiltAndroid() diff --git a/build-logic/src/main/kotlin/cazait/ComposeAndroid.kt b/build-logic/src/main/kotlin/cazait/ComposeAndroid.kt new file mode 100644 index 0000000..910a371 --- /dev/null +++ b/build-logic/src/main/kotlin/cazait/ComposeAndroid.kt @@ -0,0 +1,33 @@ +package cazait + +import org.gradle.api.Project +import org.gradle.kotlin.dsl.dependencies + +internal fun Project.configureComposeAndroid() { + val libs = extensions.libs + androidExtension.apply { + buildFeatures { + compose = true + } + composeOptions { + kotlinCompilerExtensionVersion = + libs.findVersion("androidxComposeCompiler").get().toString() + } + + dependencies { + val bom = libs.findLibrary("androidx-compose-bom").get() + add("implementation", platform(bom)) + add("androidTestImplementation", platform(bom)) + + add("implementation", libs.findLibrary("androidx.compose.material3").get()) + add("implementation", libs.findLibrary("androidx.compose.ui").get()) + add("implementation", libs.findLibrary("androidx.constraintlayout.compose").get()) + add("implementation", libs.findLibrary("androidx.compose.ui.tooling.preview").get()) + add("androidTestImplementation", libs.findLibrary("androidx.test.espresso.core").get()) + add("androidTestImplementation", libs.findLibrary("androidx.test.ext.junit").get()) + add("androidTestImplementation", libs.findLibrary("androidx.compose.ui.test").get()) + add("debugImplementation", libs.findLibrary("androidx.compose.ui.tooling").get()) + add("debugImplementation", libs.findLibrary("androidx.compose.ui.testManifest").get()) + } + } +} diff --git a/build-logic/src/main/kotlin/cazait/CoroutineAndroid.kt b/build-logic/src/main/kotlin/cazait/CoroutineAndroid.kt new file mode 100644 index 0000000..f1b7355 --- /dev/null +++ b/build-logic/src/main/kotlin/cazait/CoroutineAndroid.kt @@ -0,0 +1,20 @@ +package cazait + +import org.gradle.api.Project +import org.gradle.kotlin.dsl.dependencies + +internal fun Project.configureCoroutineAndroid() { + val libs = extensions.libs + configureCoroutineKotlin() + dependencies { + "implementation"(libs.findLibrary("kotlinx.coroutines.android").get()) + } +} + +internal fun Project.configureCoroutineKotlin() { + val libs = extensions.libs + dependencies { + "implementation"(libs.findLibrary("kotlinx.coroutines.core").get()) + "testImplementation"(libs.findLibrary("kotlinx.coroutines.test").get()) + } +} diff --git a/build-logic/src/main/kotlin/cazait/Extension.kt b/build-logic/src/main/kotlin/cazait/Extension.kt new file mode 100644 index 0000000..9532982 --- /dev/null +++ b/build-logic/src/main/kotlin/cazait/Extension.kt @@ -0,0 +1,25 @@ +package cazait + +import com.android.build.api.dsl.ApplicationExtension +import com.android.build.api.dsl.CommonExtension +import com.android.build.api.dsl.LibraryExtension +import org.gradle.api.Project +import org.gradle.api.artifacts.VersionCatalog +import org.gradle.api.artifacts.VersionCatalogsExtension +import org.gradle.api.plugins.ExtensionContainer +import org.gradle.kotlin.dsl.getByType + +internal val Project.applicationExtension: CommonExtension<*, *, *, *, *> + get() = extensions.getByType() + +internal val Project.libraryExtension: CommonExtension<*, *, *, *, *> + get() = extensions.getByType() + +internal val Project.androidExtension: CommonExtension<*, *, *, *, *> + get() = runCatching { libraryExtension } + .recoverCatching { applicationExtension } + .onFailure { println("Could not find Library or Application extension from this project") } + .getOrThrow() + +internal val ExtensionContainer.libs: VersionCatalog + get() = getByType().named("libs") diff --git a/build-logic/src/main/kotlin/cazait/HiltAndroid.kt b/build-logic/src/main/kotlin/cazait/HiltAndroid.kt new file mode 100644 index 0000000..f5f5fe6 --- /dev/null +++ b/build-logic/src/main/kotlin/cazait/HiltAndroid.kt @@ -0,0 +1,28 @@ +package cazait + +import org.gradle.api.Plugin +import org.gradle.api.Project +import org.gradle.kotlin.dsl.dependencies + +internal fun Project.configureHiltAndroid() { + with(pluginManager) { + apply("dagger.hilt.android.plugin") + apply("org.jetbrains.kotlin.kapt") + } + + val libs = extensions.libs + dependencies { + "implementation"(libs.findLibrary("hilt.android").get()) + "kapt"(libs.findLibrary("hilt.android.compiler").get()) + "kaptAndroidTest"(libs.findLibrary("hilt.android.compiler").get()) + } +} + +internal class HiltAndroidPlugin : Plugin { + + override fun apply(target: Project) { + with(target) { + configureHiltAndroid() + } + } +} \ No newline at end of file diff --git a/build-logic/src/main/kotlin/cazait/HiltKotlin.kt b/build-logic/src/main/kotlin/cazait/HiltKotlin.kt new file mode 100644 index 0000000..e0761d9 --- /dev/null +++ b/build-logic/src/main/kotlin/cazait/HiltKotlin.kt @@ -0,0 +1,26 @@ +package cazait + +import org.gradle.api.Plugin +import org.gradle.api.Project +import org.gradle.kotlin.dsl.dependencies + +internal fun Project.configureHiltKotlin() { + with(pluginManager) { + apply("org.jetbrains.kotlin.kapt") + } + + val libs = extensions.libs + dependencies { + "implementation"(libs.findLibrary("hilt.core").get()) + "kapt"(libs.findLibrary("hilt.compiler").get()) + } +} + +internal class HiltKotlinPlugin : Plugin { + + override fun apply(target: Project) { + with(target) { + configureHiltKotlin() + } + } +} diff --git a/build-logic/src/main/kotlin/cazait/KotestAndroid.kt b/build-logic/src/main/kotlin/cazait/KotestAndroid.kt new file mode 100644 index 0000000..413b00e --- /dev/null +++ b/build-logic/src/main/kotlin/cazait/KotestAndroid.kt @@ -0,0 +1,16 @@ +package cazait + +import org.gradle.api.Project + +internal fun Project.configureKotestAndroid() { + configureKotest() + configureJUnitAndroid() +} + +internal fun Project.configureJUnitAndroid() { + androidExtension.apply { + testOptions { + unitTests.all { it.useJUnitPlatform() } + } + } +} diff --git a/build-logic/src/main/kotlin/cazait/KotestKotlin.kt b/build-logic/src/main/kotlin/cazait/KotestKotlin.kt new file mode 100644 index 0000000..0b5bdd3 --- /dev/null +++ b/build-logic/src/main/kotlin/cazait/KotestKotlin.kt @@ -0,0 +1,21 @@ +package cazait + +import org.gradle.api.Project +import org.gradle.api.tasks.testing.Test +import org.gradle.kotlin.dsl.dependencies +import org.gradle.kotlin.dsl.withType + +internal fun Project.configureKotest() { + configureJUnit() + val libs = extensions.libs + dependencies { + "testImplementation"(libs.findLibrary("kotest.runner").get()) + "testImplementation"(libs.findLibrary("kotest.assertions").get()) + } +} + +internal fun Project.configureJUnit() { + tasks.withType().configureEach { + useJUnitPlatform() + } +} diff --git a/build-logic/src/main/kotlin/cazait/KotlinAndroid.kt b/build-logic/src/main/kotlin/cazait/KotlinAndroid.kt new file mode 100644 index 0000000..ffc479f --- /dev/null +++ b/build-logic/src/main/kotlin/cazait/KotlinAndroid.kt @@ -0,0 +1,66 @@ +@file:Suppress("UnstableApiUsage") + +package cazait + +import org.gradle.api.JavaVersion +import org.gradle.api.Project +import org.gradle.kotlin.dsl.dependencies +import org.gradle.kotlin.dsl.provideDelegate +import org.gradle.kotlin.dsl.withType +import org.jetbrains.kotlin.gradle.tasks.KotlinCompile + +/** + * https://github.com/android/nowinandroid/blob/main/build-logic/convention/src/main/kotlin/com/google/samples/apps/nowinandroid/KotlinAndroid.kt + */ +internal fun Project.configureKotlinAndroid() { + // Plugins + pluginManager.apply("org.jetbrains.kotlin.android") + + // Android settings + androidExtension.apply { + compileSdk = 34 + + defaultConfig { + minSdk = 28 + } + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 + isCoreLibraryDesugaringEnabled = true + } + + buildTypes { + getByName("release") { + isMinifyEnabled = false + proguardFiles( + getDefaultProguardFile("proguard-android-optimize.txt"), + "proguard-rules.pro" + ) + } + } + } + + configureKotlin() + + val libs = extensions.libs + + dependencies { + add("coreLibraryDesugaring", libs.findLibrary("android.desugarJdkLibs").get()) + } +} + +internal fun Project.configureKotlin() { + tasks.withType().configureEach { + kotlinOptions { + jvmTarget = JavaVersion.VERSION_17.toString() + // Treat all Kotlin warnings as errors (disabled by default) + // Override by setting warningsAsErrors=true in your ~/.gradle/gradle.properties + val warningsAsErrors: String? by project + allWarningsAsErrors = warningsAsErrors.toBoolean() + freeCompilerArgs = freeCompilerArgs + listOf( + "-opt-in=kotlin.RequiresOptIn", + ) + } + } +} diff --git a/build-logic/src/main/kotlin/cazait/VerifyDetekt.kt b/build-logic/src/main/kotlin/cazait/VerifyDetekt.kt new file mode 100644 index 0000000..0fab424 --- /dev/null +++ b/build-logic/src/main/kotlin/cazait/VerifyDetekt.kt @@ -0,0 +1,15 @@ +package cazait + +import org.gradle.api.Project +import org.gradle.kotlin.dsl.dependencies + +internal fun Project.configureVerifyDetekt() { + with(pluginManager) { + apply("io.gitlab.arturbosch.detekt") + } + + val libs = extensions.libs + dependencies { + "detektPlugins"(libs.findLibrary("verify.detektFormatting").get()) + } +} diff --git a/core/data/.gitignore b/core/data/.gitignore new file mode 100644 index 0000000..42afabf --- /dev/null +++ b/core/data/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/core/data/build.gradle.kts b/core/data/build.gradle.kts new file mode 100644 index 0000000..5ca32e4 --- /dev/null +++ b/core/data/build.gradle.kts @@ -0,0 +1,10 @@ +@Suppress("DSL_SCOPE_VIOLATION") // TODO: Remove once KTIJ-19369 is fixed +plugins { + id("java-library") + alias(libs.plugins.kotlin.jvm) +} + +java { + sourceCompatibility = JavaVersion.VERSION_1_7 + targetCompatibility = JavaVersion.VERSION_1_7 +} \ No newline at end of file diff --git a/core/data/src/main/java/org/cazait/core/data/MyClass.kt b/core/data/src/main/java/org/cazait/core/data/MyClass.kt new file mode 100644 index 0000000..4f2d4ed --- /dev/null +++ b/core/data/src/main/java/org/cazait/core/data/MyClass.kt @@ -0,0 +1,4 @@ +package org.cazait.core.data + +class MyClass { +} \ No newline at end of file diff --git a/core/domain/.gitignore b/core/domain/.gitignore new file mode 100644 index 0000000..42afabf --- /dev/null +++ b/core/domain/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/core/domain/build.gradle.kts b/core/domain/build.gradle.kts new file mode 100644 index 0000000..5ca32e4 --- /dev/null +++ b/core/domain/build.gradle.kts @@ -0,0 +1,10 @@ +@Suppress("DSL_SCOPE_VIOLATION") // TODO: Remove once KTIJ-19369 is fixed +plugins { + id("java-library") + alias(libs.plugins.kotlin.jvm) +} + +java { + sourceCompatibility = JavaVersion.VERSION_1_7 + targetCompatibility = JavaVersion.VERSION_1_7 +} \ No newline at end of file diff --git a/core/domain/src/main/java/org/cazait/domain/MyClass.kt b/core/domain/src/main/java/org/cazait/domain/MyClass.kt new file mode 100644 index 0000000..1e0f2be --- /dev/null +++ b/core/domain/src/main/java/org/cazait/domain/MyClass.kt @@ -0,0 +1,4 @@ +package org.cazait.domain + +class MyClass { +} \ No newline at end of file diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index e863519..894f991 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,25 +1,35 @@ [versions] androidGradlePlugin = "8.1.3" +androidDesugarJdkLibs = "2.0.4" + +kotlin = "1.8.21" +kotlinxCoroutines = "1.7.3" +kotlinxSerializationJson = "1.5.1" +kotlinxDatetime = "0.2.1" +kotlinxImmutable = "0.3.5" +coreKtx = "1.12.0" +composeUi = "1.5.4" +constraintlayoutCompose = "1.0.1" +composeBom = "2023.10.01" +activityCompose = "1.8.0" +lifecycleRuntimeKtx = "2.6.2" +androidxLifecycle = "2.6.2" +androidxNavigationCompose = "2.7.4" +androidxComposeCompiler = "1.4.7" +kotlinxCoroutinesCoreCommon = "1.3.8" + appcompat = "1.6.1" carUiLib = "2.5.1" constraintlayout = "2.1.4" -coreKtx = "1.12.0" coreSplashscreen = "1.0.1" databindingRuntime = "8.1.3" datastorePreferences = "1.0.0" dotsindicator = "4.3" -espressoCore = "3.5.1" expandablelayout = "1.0.7" fragmentKtx = "1.6.2" glide = "4.14.2" hiltCompiler = "1.1.0" -junit = "4.13.2" -junitVersion = "1.1.5" -kotlin = "1.8.21" -kotlinxCoroutinesCore = "1.7.3" -kotlinxCoroutinesAndroid = "1.7.3" -kotlinxCoroutinesCoreCommon = "1.3.8" -kotlinxCoroutinesPlayServices = "1.6.4" + legacySupportV4 = "1.0.0" lifecycleViewmodelKtx = "2.6.2" loggingInterceptor = "5.0.0-alpha.11" @@ -54,7 +64,21 @@ moshi = "1.14.0" coroutine = "1.6.4" viewpager2Version = "1.0.0" +# 테스트 +kotest = "5.6.2" +detekt = "1.23.0" +mockk = "1.13.5" +turbine = "1.0.0" +androidxTestExtJunit = "1.1.5" +espressoCore = "3.5.1" +junit = "4.13.2" + [libraries] +android-gradle-plugin = { group = "com.android.tools.build", name = "gradle", version.ref = "androidGradlePlugin" } +android-desugarJdkLibs = { group = "com.android.tools", name = "desugar_jdk_libs", version.ref = "androidDesugarJdkLibs" } +kotlin-gradle-plugin = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", version.ref = "kotlin" } +core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "coreKtx" } + androidx-appcompat = { module = "androidx.appcompat:appcompat", version.ref = "appcompat" } androidx-constraintlayout = { module = "androidx.constraintlayout:constraintlayout", version.ref = "constraintlayout" } androidx-core-ktx = { module = "androidx.core:core-ktx", version.ref = "coreKtx" } @@ -63,7 +87,6 @@ androidx-databinding-runtime = { module = "androidx.databinding:databinding-runt androidx-datastore-preferences = { module = "androidx.datastore:datastore-preferences", version.ref = "datastorePreferences" } androidx-espresso-core = { module = "androidx.test.espresso:espresso-core", version.ref = "espressoCore" } androidx-fragment-ktx = { module = "androidx.fragment:fragment-ktx", version.ref = "fragmentKtx" } -androidx-junit = { module = "androidx.test.ext:junit", version.ref = "junitVersion" } androidx-legacy-support-v4 = { module = "androidx.legacy:legacy-support-v4", version.ref = "legacySupportV4" } androidx-lifecycle-viewmodel-ktx = { module = "androidx.lifecycle:lifecycle-viewmodel-ktx", version.ref = "lifecycleViewmodelKtx" } androidx-room-compiler = { module = "androidx.room:room-compiler", version.ref = "roomKtx" } @@ -79,11 +102,7 @@ converter-moshi = { module = "com.squareup.retrofit2:converter-moshi", version.r dotsindicator = { module = "com.tbuonomo:dotsindicator", version.ref = "dotsindicator" } expandablelayout = { module = "com.github.skydoves:expandablelayout", version.ref = "expandablelayout" } glide = { module = "com.github.bumptech.glide:glide", version.ref = "glide" } -junit = { module = "junit:junit", version.ref = "junit" } -kotlinx-coroutines-core = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version.ref = "kotlinxCoroutinesCore" } -kotlinx-coroutines-android = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-android", version.ref = "kotlinxCoroutinesAndroid" } -kotlinx-coroutines-core-common = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core-common", version.ref = "kotlinxCoroutinesCoreCommon" } -kotlinx-coroutines-play-services = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-play-services", version.ref = "kotlinxCoroutinesPlayServices" } + logging-interceptor = { module = "com.squareup.okhttp3:logging-interceptor", version.ref = "loggingInterceptor" } map-sdk = { module = "com.naver.maps:map-sdk", version.ref = "naverMapSdk" } material = { module = "com.google.android.material:material", version.ref = "materialVersion" } @@ -100,6 +119,28 @@ hilt-ext-compiler = { group = "androidx.hilt", name = "hilt-compiler", version.r hilt-ext-work = { group = "androidx.hilt", name = "hilt-work", version.ref = "hiltExt" } hilt-navigation-compose = { group = "androidx.hilt", name = "hilt-navigation-compose", version.ref = "hiltExt" } +# Coroutines +kotlinx-coroutines-core = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version.ref = "kotlinxCoroutines" } +kotlinx-coroutines-android = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-android", version.ref = "kotlinxCoroutines" } +kotlinx-coroutines-play-services = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-play-services", version.ref = "kotlinxCoroutines" } + +# Testing +junit = { group = "junit", name = "junit", version.ref = "junit" } +kotest-runner = { group = "io.kotest", name = "kotest-runner-junit5", version.ref = "kotest" } +kotest-assertions = { group = "io.kotest", name = "kotest-assertions-core", version.ref = "kotest" } +kotlin-test = { group = "org.jetbrains.kotlin", name = "kotlin-test", version.ref = "kotlin" } +mockk = { group = "io.mockk", name = "mockk", version.ref = "mockk" } +turbine = { group = "app.cash.turbine", name = "turbine", version.ref = "turbine" } +androidx-test-espresso-core = { group = "androidx.test.espresso", name = "espresso-core", version.ref = "espressoCore" } +androidx-test-ext-junit = { group = "androidx.test.ext", name = "junit", version.ref = "androidxTestExtJunit" } +androidx-compose-ui-test = { group = "androidx.compose.ui", name = "ui-test-junit4" } +androidx-compose-ui-tooling = { group = "androidx.compose.ui", name = "ui-tooling" } +androidx-compose-ui-tooling-preview = { group = "androidx.compose.ui", name = "ui-tooling-preview" } +androidx-compose-ui-testManifest = { group = "androidx.compose.ui", name = "ui-test-manifest" } +androidx-navigation-testing = { group = "androidx.navigation", name = "navigation-testing", version.ref = "androidxNavigationCompose" } + +# verify +verify-detektFormatting = { module = "io.gitlab.arturbosch.detekt:detekt-formatting", version.ref = "detekt" } [plugins] android-application = { id = "com.android.application", version.ref = "androidGradlePlugin" } android-library = { id = "com.android.library", version.ref = "androidGradlePlugin" } diff --git a/settings.gradle.kts b/settings.gradle.kts index ea3d7f3..4579808 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1,9 +1,9 @@ pluginManagement { + includeBuild("build-logic") repositories { gradlePluginPortal() google() mavenCentral() - maven("https://naver.jfrog.io/artifactory/maven/") } } dependencyResolutionManagement { @@ -18,3 +18,5 @@ rootProject.name = "CaZaIt-Android" include( ":app", ) +include(":core:data") +include(":core:domain")