Skip to content

依赖配置(字节码加载)

xiaojinzi123 edited this page Jan 11, 2024 · 4 revisions

!!! 重要警告, 不支持 ksp 的增量更新, 所以一定一定要禁止, 因为这玩意默认是开启的。。。 Google 官方的 Room 的 ksp 是支持的, 我研究了好几天也没看出来.

# 禁用 ksp 增量更新
ksp.incremental=false

KComponent 依赖和配置

最新版本为: 下面所有的 都使用最新的版本号代替 比如使用 v1.0.0 代替

1 添加依赖

请先添加依赖仓库

maven { url 'https://jitpack.io' }

1.1 基础包

implementation 'com.github.xiaojinzi123.KComponent:kcomponent:<Version>'

1.2 如果想要 RxJava 的支持, 还需添加一个依赖

implementation 'com.github.xiaojinzi123.KComponent:kcomponent-rx:<Version>'

2. 使用注解驱动器 (每个模块都需要配置, 包括 App 壳工程)

// ksp 的插件请自行引入, 这里才可以使用 ksp 
// 在 Gradle 文件中的 dependencies {} 中配置
ksp "com.github.xiaojinzi123.KComponent:kcomponent-compiler:<Version>"

3. 配置模块名称 (每个模块都需要配置, 包括 App 壳工程)

// ksp 的插件请自行引入, 这里才可以使用 ksp 
android {
}
dependencies {
}
ksp {
  arg("ModuleName", "这里填写你模块的名字")
}

4. 字节码插件配置

在项目顶层的 Gradle 文件中声明插件的地址:

buildscript {
  dependencies {
    classpath "com.github.xiaojinzi123.KComponent:kcomponent-plugin:<Version>"   
  }
}

在壳 App 的 Gradle 文件中使用此插件

apply plugin: 'com.android.application'
apply plugin: 'com.xiaojinzi.kcomponent.plugin' // 最好就排在 application 插件后面

或者

plugins {
  id 'com.android.application'
  id 'com.xiaojinzi.kcomponent.plugin' // 最好就排在 application 插件后面
}

5. App 初始化

class App : Application() {
  
  override fun onCreate() {
    Component.init(
      application = this,
      isDebug = BuildConfig.DEBUG,
      config = Config.Builder()
      .optimizeInit(isOptimizeInit = true)
      .autoRegisterModule(isAutoRegisterModule = true)
      .build()
    )  
  }
}

请尽情使用吧