Sempre que você precisa construir uma custom plugin para evitar o booileplate dentro do seu projeto pense na easy logic, ela devolve uma abstração simples apoiando a construções de suas plugins gradle
Segue um repositório de exemplo, onde podemos encontrar a utilização dos nossos recursos disponível na versão experimental do projeto.
Repositório utilizando a versão experimental: Monfu Network - Sample
implementation("top.softnepo:easy-logic:0.0.12-experimental")
Se você deseja adicionar plugins no script você pode utilizar easyLogicPlugins, ela retorna todo suporte necessário para plugins simples
easyLogicPlugins {
applyPlugin("com.android.library")
applyPlugin("org.jetbrains.kotlin.android")
}
Se deseja configurar o build de um modulo android gradle, você pode utilizar easyLogicBuild, ele providencia para você a estrutura do project android variáveis e métodos simples.
easyLogicBuild {
compileSdk = 32
targetSdk = 32
onDefaultConfig {
.minSdk = 21
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
setProguardFiles(listOf("consumer-rules.pro"))
}
onCompileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
onKotlinOptions { jvmTarget = "1.8" }
}
Para adicionar as dependencias ganhamos alguns luxos, podemos utilizar a extensão easyLogicDependency
Suporte ao catalog: carregue o arquivo com as dependencias no settings do projeto, caso esteja em algum conexto diferente
dependencyResolutionManagement {
repositories {
google()
mavenCentral()
}
versionCatalogs.create("libs") { from(files("../gradle/libs.versions.toml")) }
}
Consumindo catalog: para consumir as dependencias do catalog você pode utilizar os métodos de apoio, onde você só indica o nome da biblioteca cadastrada e com isso, ele ja faz o resto para você 💗
easyLogicDependency {
catalogImplementation("core.kotlin")
catalogImplementation("core.android.coroutines")
catalogImplementation("core.retrofit.library")
catalogImplementation("core.retrofit.gson")
catalogTestImplementation("unit.test.junit")
}
o mesmo se aplica adicionando as dependencias normal, porém sem o prefix catalog
easyLogicDependency {
implementation("top.softnepo:easy-logic:0.0.12-experimental")
}
Para implementar um modulo, você pode utilizar as funções de suporte com prefix import
easyLogicDependency {
importImplementation(":feature:home")
}