Skip to content

Koin 어노테이션

프로젝트에 Koin 어노테이션을 설정합니다.

버전

모든 Koin 패키지는 Maven Central에서 찾을 수 있습니다.

현재 사용 가능한 버전은 다음과 같습니다:

설정 및 현재 버전

현재 사용 가능한 Koin 프로젝트 버전은 다음과 같습니다:

프로젝트버전
koin-annotations-bomMaven Central
koin-annotationsMaven Central
koin-ksp-compilerMaven Central

KSP 플러그인

KSP 플러그인이 작동하려면 필요합니다 (https://github.com/google/ksp). 공식 (KSP 설정 문서)[https://kotlinlang.org/docs/ksp-quickstart.html]를 따르세요.

다음 Gradle 플러그인을 추가하세요:

groovy
plugins {
    id "com.google.devtools.ksp" version "$ksp_version"
}

최신 KSP 호환 버전: 1.9.24-1.0.20

Kotlin 및 멀티플랫폼

표준 Kotlin/Kotlin 멀티플랫폼 프로젝트에서는 KSP를 다음과 같이 설정해야 합니다:

  • KSP Gradle 플러그인 사용
  • koin 어노테이션을 위해 commonMain에 의존성 추가
  • commonMain에 대한 sourceSet 설정
  • koin 컴파일러와 함께 KSP 의존성 태스크 추가
  • 컴파일 태스크 의존성을 kspCommonMainKotlinMetadata로 설정
groovy
plugins {
   id("com.google.devtools.ksp")
}

kotlin {

    sourceSets {
        
        // Add Koin Annotations
        commonMain.dependencies {
            // Koin
            implementation("io.insert-koin:koin-core:$koin_version")
            // Koin Annotations
            api("io.insert-koin:koin-annotations:$koin_annotations_version")
        }
    }
    
    // KSP Common sourceSet
    sourceSets.named("commonMain").configure {
        kotlin.srcDir("build/generated/ksp/metadata/commonMain/kotlin")
    }       
}

// KSP Tasks
dependencies {
    add("kspCommonMainMetadata", libs.koin.ksp.compiler)
    add("kspAndroid", libs.koin.ksp.compiler)
    add("kspIosX64", libs.koin.ksp.compiler)
    add("kspIosArm64", libs.koin.ksp.compiler)
    add("kspIosSimulatorArm64", libs.koin.ksp.compiler)
}

// Trigger Common Metadata Generation from Native tasks
project.tasks.withType(KotlinCompilationTask::class.java).configureEach {
    if(name != "kspCommonMainKotlinMetadata") {
        dependsOn("kspCommonMainKotlinMetadata")
    }
}

Android 앱 설정

  • KSP Gradle 플러그인 사용
  • koin 어노테이션 및 koin ksp 컴파일러에 대한 의존성 추가
  • sourceSet 설정
groovy
plugins {
   id("com.google.devtools.ksp")
}

android {

    dependencies {
        // Koin
        implementation("io.insert-koin:koin-android:$koin_version")
        // Koin Annotations
        implementation("io.insert-koin:koin-annotations:$koin_annotations_version")
        // Koin Annotations KSP Compiler
        ksp("io.insert-koin:koin-ksp-compiler:$koin_annotations_version")
    }

    // Set KSP sourceSet
    applicationVariants.all {
        val variantName = name
        sourceSets {
            getByName("main") {
                java.srcDir(File("build/generated/ksp/$variantName/kotlin"))
            }
        }
    }
}