From bc0545f80d80858b252f5472f8cdaf27fa34d4fa Mon Sep 17 00:00:00 2001 From: lt Date: Sun, 23 Oct 2022 15:29:56 +0800 Subject: [PATCH] update readme --- README.md | 83 ++++++++++++++----- README_CN.md | 83 ++++++++++++++----- buff/src/main/java/com/lt/buff/BuffVisitor.kt | 1 - 3 files changed, 128 insertions(+), 39 deletions(-) diff --git a/README.md b/README.md index f9b5a53..0477bb3 100644 --- a/README.md +++ b/README.md @@ -49,25 +49,6 @@ plugins { id("com.google.devtools.ksp") version "1.7.10-1.0.6"//this, The left 1.7.10 corresponds to your the Kotlin version,more version: https://github.com/google/ksp/releases } -buildTypes { - release { - ... - kotlin { - sourceSets.main { - kotlin.srcDir("build/generated/ksp/release/kotlin")//this - } - } - } - debug { - ... - kotlin { - sourceSets.main { - kotlin.srcDir("build/generated/ksp/debug/kotlin")//this - } - } - } -} - dependencies { ... implementation("com.github.ltttttttttttt:Buff:$version")//this, such as 0.0.2 @@ -96,4 +77,68 @@ val buffBean = BuffBean(0) val bean = buffBean.addBuff()//Transform to the BuffBeanWithBuff bean.name//The name's getter and setter have the effect of MutableState bean.removeBuff()//Fallback to BuffBean(optional) +``` + +Step 4.Add ksp dir to the srcDir + +Your app dir, build.gradle.kts add: + +```kotlin +//If your project is the android, and the productFlavors is not set +android { + buildTypes { + release { + kotlin { + sourceSets.main { + kotlin.srcDir("build/generated/ksp/release/kotlin") + } + } + } + debug { + kotlin { + sourceSets.main { + kotlin.srcDir("build/generated/ksp/debug/kotlin") + } + } + } + } + kotlin { + sourceSets.test { + kotlin.srcDir("build/generated/ksp/test/kotlin") + } + } +} + +//If your project is the android, and the productFlavors is set +applicationVariants.all { + outputs.all { + val flavorAndBuildTypeName = name + kotlin { + sourceSets.main { + kotlin.srcDir( + "build/generated/ksp/${ + flavorAndBuildTypeName.split("-").let { + it.first() + it.last()[0].toUpperCase() + it.last().substring(1) + } + }/kotlin" + ) + } + } + } +} +kotlin { + sourceSets.test { + kotlin.srcDir("build/generated/ksp/test/kotlin") + } +} + +//If your project is the jvm or more +kotlin { + sourceSets.main { + kotlin.srcDir("build/generated/ksp/main/kotlin") + } + sourceSets.test { + kotlin.srcDir("build/generated/ksp/test/kotlin") + } +} ``` \ No newline at end of file diff --git a/README_CN.md b/README_CN.md index f7e2d5e..98b29bd 100644 --- a/README_CN.md +++ b/README_CN.md @@ -54,25 +54,6 @@ plugins { id("com.google.devtools.ksp") version "1.7.10-1.0.6"//this,前面的1.7.10对应你的kotlin版本,更多版本参考: https://github.com/google/ksp/releases } -buildTypes { - release { - ... - kotlin { - sourceSets.main { - kotlin.srcDir("build/generated/ksp/release/kotlin")//this todo 后续修改为自动获取 - } - } - } - debug { - ... - kotlin { - sourceSets.main { - kotlin.srcDir("build/generated/ksp/debug/kotlin")//this - } - } - } -} - dependencies { ... implementation("com.github.ltttttttttttt:Buff:$version")//this,比如0.0.2 @@ -100,4 +81,68 @@ val buffBean = BuffBean(0)//这个BuffBean可以自己new出来,也可以通过 val bean = buffBean.addBuff()//增加Buff,类型改为BuffBeanWithBuff bean.name//这个name的get和set就有了MutableState的效果 bean.removeBuff()//退回为BuffBean(可选方法,可以不使用) +``` + +Step 4.将ksp的代码生成目录加入源码目录 + +在app模块目录内的build.gradle.kts内添加: + +```kotlin +//如果你的是安卓项目,且未设置多渠道 +android { + buildTypes { + release { + kotlin { + sourceSets.main { + kotlin.srcDir("build/generated/ksp/release/kotlin") + } + } + } + debug { + kotlin { + sourceSets.main { + kotlin.srcDir("build/generated/ksp/debug/kotlin") + } + } + } + } + kotlin { + sourceSets.test { + kotlin.srcDir("build/generated/ksp/test/kotlin") + } + } +} + +//如果你的是安卓项目,且设置了多渠道 +applicationVariants.all { + outputs.all { + val flavorAndBuildTypeName = name + kotlin { + sourceSets.main { + kotlin.srcDir( + "build/generated/ksp/${ + flavorAndBuildTypeName.split("-").let { + it.first() + it.last()[0].toUpperCase() + it.last().substring(1) + } + }/kotlin" + ) + } + } + } +} +kotlin { + sourceSets.test { + kotlin.srcDir("build/generated/ksp/test/kotlin") + } +} + +//如果你的是jvm等项目 +kotlin { + sourceSets.main { + kotlin.srcDir("build/generated/ksp/main/kotlin") + } + sourceSets.test { + kotlin.srcDir("build/generated/ksp/test/kotlin") + } +} ``` \ No newline at end of file diff --git a/buff/src/main/java/com/lt/buff/BuffVisitor.kt b/buff/src/main/java/com/lt/buff/BuffVisitor.kt index b6214cf..5a7f23f 100644 --- a/buff/src/main/java/com/lt/buff/BuffVisitor.kt +++ b/buff/src/main/java/com/lt/buff/BuffVisitor.kt @@ -52,7 +52,6 @@ internal class BuffVisitor(private val environment: SymbolProcessorEnvironment) .find { it.shortName.getShortName() == buffName } != null val type = ksType.declaration.simpleName.getShortName() val nullable = if (ksType.nullability == Nullability.NULLABLE) "?" else "" - environment.logger.warn(type) //写入构造内的普通字段 file.appendText(" ${if (it.isVal) "val" else "var"} $name: ${if (isBuffBean) "$type$suffix$nullable" else "$type$nullable"},\n") functionFields.add(FunctionFieldsInfo(name, true, isBuffBean))