当前位置: 首页 > article >正文

Gradle 配置后续一致更新

当Gradle 下载慢时使用镜像下载快

distributionUrl=https\://mirrors.cloud.tencent.com/gradle/gradle-8.7-all.zip

国内网络下载比较慢可以使用阿里的镜像

maven(url = "https://maven.aliyun.com/repository/google")
maven(url = "https://maven.aliyun.com/repository/public")
maven(url = "https://maven.aliyun.com/repository/central")
maven(url = "https://maven.aliyun.com/repository/gradle-plugin")

当项目比较大依赖较多时可以使用 build来处理
gradle 使用kts 来写

pluginManagement {
    includeBuild("build-logic")
}

创建build-logic 项目
settings.gradle.kts

dependencyResolutionManagement {
    repositories {
        google()
        mavenCentral()
    }
    versionCatalogs {
        create("libs") {
            from(files("../gradle/libs.versions.toml"))
        }
    }
}

rootProject.name = "build-logic"
include(":convention")

build.gradle.kts

import org.jetbrains.kotlin.gradle.tasks.KotlinCompile

plugins {
    `kotlin-dsl`
}

group = "top.chengdongqing.weui.buildlogic"

java {
    sourceCompatibility = JavaVersion.VERSION_17
    targetCompatibility = JavaVersion.VERSION_17
}
tasks.withType<KotlinCompile>().configureEach {
    kotlinOptions {
        jvmTarget = JavaVersion.VERSION_17.toString()
    }
}

dependencies {
    compileOnly(libs.android.gradle.plugin)
    compileOnly(libs.android.tools.common)
    compileOnly(libs.kotlin.gradle.plugin)
    compileOnly(libs.room.gradle.plugin)
    compileOnly(libs.ksp.gradle.plugin)
}

tasks {
    validatePlugins {
        enableStricterValidation = true
        failOnWarning = true
    }
}

gradlePlugin {
    plugins {
//        val prefix = "weui"
//        register("androidComposeApplication") {
//            id = "$prefix.android.compose.application"
//            implementationClass = "AndroidComposeApplicationConventionPlugin"
//        }
//        register("androidComposeLibrary") {
//            id = "$prefix.android.compose.library"
//            implementationClass = "AndroidComposeLibraryConventionPlugin"
//        }
//        register("androidRoom") {
//            id = "$prefix.android.room"
//            implementationClass = "AndroidRoomConventionPlugin"
//        }
        register("androidComposeLibrary"){
            id = "vic_demo"
            implementationClass = "VicPlugin"
        }
        register("androidComposeApplication"){
            id = "vic_app"
            implementationClass = "VicAppPlugin"
        }
    }
}
class VicPlugin : Plugin<Project> {
    override fun apply(target: Project) {
       println("vic plugin")
        with(target){
            with(pluginManager) {
                apply("com.android.library")
                apply("org.jetbrains.kotlin.android")
                //apply("androidx.room")
                //apply("com.google.devtools.ksp")
            }
            println("vic plugin 22")

//            extensions.configure<RoomExtension> {
//               // schemaDirectory("$projectDir/schemas")
//            }

//            dependencies {
//                //add("implementation", libs.findLibrary("room.runtime").get())
//                //add("implementation", libs.findLibrary("room.ktx").get())
//                //add("ksp", libs.findLibrary("room.compiler").get())
//            }

            val extension = extensions.getByType<LibraryExtension>().apply {
                defaultConfig {
                    consumerProguardFile("consumer-rules.pro")
                }
            }
            configureAndroidCompose(extension)
        }
    }
}

http://www.kler.cn/a/371475.html

相关文章:

  • 第8天:数据存储-补充材料——MainActivity.kt解读
  • ES6 变量的解构赋值
  • 数据分析师入门: 数据分析可视化入门知识点
  • Kafka 解决消息丢失、乱序与重复消费
  • 2024年9月电子学会青少年软件编程Python等级考试(三级)真题试卷
  • 微信小程序25__实现卡片变换
  • redis的三种客户端
  • SpringMVC学习(2)
  • Mac开发环境配置- Shell/Homebrew/ruby
  • ele-table表格列表内,双击编辑部分信息(el-table组件同理)
  • C# OpenCvSharp DNN UNet 推理
  • 华为手机系统应用瘦身
  • 了解桌面机床用于学校教学培训应用-桌面级CNC机床
  • Debug日程工作经验总结日程常用
  • 五指cms安装
  • ubuntu20.04系统安装
  • 使用Python和OpenCV实现火焰检测
  • c++ assert
  • [机器学习]集成学习
  • Docker架构
  • [论文阅读]SimCSE: Simple Contrastive Learning of Sentence Embeddings
  • Topaz Video AI for Mac 视频无损放大软件安装教程【保姆级,操作简单轻松上手】
  • 《ToDesk 云电脑、易腾云、青椒云移动端体验实测:让手机秒变超级电脑》
  • 鸿蒙NEXT应用上架与分发
  • 沧穹科技室内音频“北斗”定位技术亮相第三届北斗规模应用国际峰会
  • 面试题整理1