首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在buildSrc中如何使用project()代替常量字符串,使用Kotlin进行Gradle依赖管理

在buildSrc中使用project()代替常量字符串,使用Kotlin进行Gradle依赖管理的方法如下:

  1. 首先,在项目根目录下创建一个名为buildSrc的文件夹。
  2. buildSrc文件夹中创建一个名为build.gradle.kts的文件,并添加以下内容:
代码语言:txt
复制
plugins {
    `kotlin-dsl`
}

repositories {
    jcenter()
}

dependencies {
    implementation(kotlin("stdlib"))
}
  1. buildSrc文件夹中创建一个名为Dependencies.kt的Kotlin文件,并添加以下内容:
代码语言:txt
复制
import org.gradle.api.Project

object Dependencies {
    // 定义依赖版本号
    private const val kotlinVersion = "1.5.31"

    // 定义依赖库
    object Libraries {
        const val kotlinStdlib = "org.jetbrains.kotlin:kotlin-stdlib:$kotlinVersion"
        // 添加其他依赖库
    }

    // 定义依赖配置
    object Configurations {
        val implementation by lazy { listOf(Libraries.kotlinStdlib) }
        // 添加其他依赖配置
    }

    // 获取依赖配置
    fun Project.getDependencies(configuration: String): List<String> {
        return Configurations::class.java.getDeclaredField(configuration).get(null) as List<String>
    }
}
  1. 在项目的build.gradle.kts文件中,添加以下内容:
代码语言:txt
复制
dependencies {
    implementation(project(":buildSrc"))
}
  1. 现在可以在项目的build.gradle.kts文件中使用project()函数来代替常量字符串,进行依赖管理。例如:
代码语言:txt
复制
dependencies {
    implementation(Dependencies.Libraries.kotlinStdlib)
    // 使用project()函数代替常量字符串
    implementation(project(":module1"))
    implementation(project(":module2"))
}

在上述示例中,module1module2是项目中的两个子模块,通过使用project()函数来引用这两个子模块的依赖。

这种方式的优势是可以避免在多个地方重复定义依赖版本号和库,提高了代码的可维护性和可读性。

对于腾讯云相关产品和产品介绍链接地址,可以根据具体的应用场景和需求选择适合的产品。腾讯云提供了丰富的云计算服务,包括云服务器、云数据库、云存储、人工智能等。可以通过访问腾讯云官方网站(https://cloud.tencent.com/)获取更多详细信息和产品介绍。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android 重构 | 持续优化统一管理 Gradle

buildSrc 实践 描述下操作步骤: 项目根目录下创建 buildSrc 目录,随后新建 build.gradle.kts 文件; 创建 src 目录,以及对应管理版本文件; 替换直接使用原有依赖...* 该过程构建期间将被重用,因此分叉开销很小。分叉的好处是,内存密集型编译是不同的过程中进行的,从而导致主 Gradle 守护程序的垃圾回收量大大减少。...:${Versions.kotlinxCoroutines}" // ... } 举个两个栗子,如何使用: 根目录下 build 如何使用: 直接通过 Dependencies 文件定义的分组名去获取对应的属性即可...Step 1:项目根目录下创建 buildSrc 目录 Step 2:新建 version.gradle 依赖/插件管理 大佬日志以及写的很明确了,这里我单独说下我期间遇到的坑,或者是重点吧,让看到此文的小伙伴更快的上手...'然后点回车键; * Deprecated: gradle task列表面板点击'Run Gradle Task'(类似大象的)按钮,'Gradle Project'栏选中buildSrc模块,

1.8K31

还没自定义过 Gradle 插件的要学了

这篇文章是全面掌握 Gradle 构建系统系列的第 2 篇: 1、Gradle 基础[1] 2、Gradle 插件[2] 3、Gradle 依赖管理 4、APG Transform ---- 1....当然 .gradle 文件也能做到逻辑复用,但 Gradle 插件的封装性更好; 组件发布: 可以将插件发布到 Maven 仓库进行管理,其他项目可以使用插件 ID 依赖。...这里区分本地依赖和远程依赖两种情况。 本地依赖: 指直接依赖本地插件源码,一般调试插件的阶段是使用本地依赖的方式。...4.2 调试技巧 一些调试技巧: 引用插件源码: 开发阶段可以直接本地依赖插件源码,而不需要将插件发布到 Maven 仓库,只需要在 build.gradle 文件修改配置: 项目 build.gradle...现在的趋势是:Gradle 脚本使用 Groovy 或 Kotlin 开发,而 Gradle 插件使用 Kotlin 开发。例如,我们可以发现 AGP 现在已经用 Kotlin 开发了。

1.8K20

Gradle基础|自定义插件并上传到JitPack

引言 每一个使用 Gradle 的同学,肯定都听过或者写过插件,因为其本身并不难,但碍于现在网上的文章千篇一律,大部分都比较老,新同学一上手反而是和我一样,花了大把时间最基础的第一步如何写一个简单demo... Gradle ,我们可以使用 Java ,Kotlin 以及 Groovy 来写自己的插件,一般而言,使用 Java 和 Koltin 要比使用 Groovy 的执行效果会更好。...具体最终生成在这里,如下图所示: Standalone project 上面的两种方式只能在当前项目中进行使用,如果我们想要在其他项目中使用,此时一般我们会将插件发布到 Maven 上,与其他人进行共享...示例代码:standlone 我们复制粘贴上面教程里的 buildSrc 包,并对其进行改名如下,比如改为 stand-gradle-plugin ,然后我们的项目 settings.build 引入此...我不是 settings.gradle 引入了吗? 我们最上面说过了,buildSrc 本身是一个特殊的项目,Gradle 会自动编译并引入。

1K10

Android四种依赖管理方法应用对比

引言 Android应用开发依赖管理是一个关键的任务。依赖管理不仅包括引入库和组件,还涉及到版本控制、共享和维护。...Kotlin buildSrc Kotlin buildSrc是一种改进的依赖管理方法,它将依赖定义移到独立的Kotlin模块,以便更好地组织和共享依赖。...步骤如下: 创建一个名为buildSrc的子项目。 buildSrc创建一个Kotlin文件,例如Dependencies.kt,并在其中定义依赖项。...build.gradle.kts文件引用Version Catalogs,并使用其中的依赖项: // build.gradle.kts dependencies { // 使用Version...结论 不同的Android项目可能需要不同的依赖管理方法,根据项目的规模、复杂性和团队的需求进行选择。

65120

如何Gradle 的 KTS 脚本添加扩展?

,因此 body 阶段可以访问所有前面 dependencies 当中添加的 maven 依赖的类。...$$result = (Delete)var9; } } 截止目前,我想大家应该能够明白 Gradle Kotlin DSL 脚本是如何运行的了。 接下来我们就看看如何实现扩展的定义。 2....2.1 定义根工程的 build.gradle.kts 当中 按照我们前面的分析,只要定义 Gradle 脚本当中,不管写到哪里,都相当于定义了了 Build_gradle 的构造函数当中,这样一个局部的函数只能在当前范围内使用...(gradle); ... } evaluate project 之前,buildSrc 模块的代码就被添加到了 baseProjectClassLoaderScope 当中,这个 classloaderScope...这一点与我们 buildSrc 当中定义依赖的版本常量的思路实际上也是一致的。

2K30

如何Gradle 的 KTS 脚本添加扩展?

,因此 body 阶段可以访问所有前面 dependencies 当中添加的 maven 依赖的类。...$$result = (Delete)var9; } } 截止目前,我想大家应该能够明白 Gradle Kotlin DSL 脚本是如何运行的了。 接下来我们就看看如何实现扩展的定义。 2....2.1 定义根工程的 build.gradle.kts 当中 按照我们前面的分析,只要定义 Gradle 脚本当中,不管写到哪里,都相当于定义了了 Build_gradle 的构造函数当中,这样一个局部的函数只能在当前范围内使用...(gradle); ... } evaluate project 之前,buildSrc 模块的代码就被添加到了 baseProjectClassLoaderScope 当中,这个 classloaderScope...这一点与我们 buildSrc 当中定义依赖的版本常量的思路实际上也是一致的。

1.4K20

使用新 Android Gradle 插件加速您的应用构建

这一改动可以您向运行时依赖添加新资源时,避免重新编译下游模块。在这种场景下,可以给您的应用带来 40% 的性能提升。另外,清理构建产物时,我们发现性能有 5% 到 10% 的改善。...此时可以使用 Gradle 提供的 project、task 容器、configuration 容器等全局对象来创建包含声明的输入和输出的任务。如上代码,我们注册了一个任务并进行相应配置。...这个任务的作用是将输入字符串写入输出目录的文件。...插件新 Variants 和 Artifact API 的资料,这些资料可以帮助您更深入了解如何与中间工件进行交互。...我们还需要对 ToyPlugin.kt 作进一步修改,让插件可以获取到我们 DSL 为每个变体定义的 asset 内容: // buildSrc/src/main/kotlin/ToyPlugin.kt

2.6K30

【Android 字节码插桩】Gradle插件基础 & Transform API的使用

我的理解: Gradle 是一种开源构建自动化工具,依赖管理目前只支持 Maven 和 Ivy 兼容的存储库和文件系统 当然, 如果你更喜欢gradle 官方文档上面的描述的话,也行… 日常写bug...’ 就是Android提供出来构建APK的一个gradle插件 该篇文章,我们主要使用 静态类型的 Java 或 Kotlin 实现的插件,实际测试java 或 kotlin实现的插件, 比 groovy.../main/java目录(rootProjectDir/buildSrc/src/main/groovy或rootProjectDir/buildSrc/src/main/kotlin取决于您喜欢的语言...> { @Override void apply(Project project) { // 创建插件扩展,greeting为插件扩展的名称,可以gradle文件其他地方使用...Gradle 的插件编写之buildSrc buildSrc编写gradle插件项目的是在当前项目下使用,不能也没办法给外部使用,创作流程如下: 1.首先在项目根目录下新建一个buildSrc目录,然后点击

25610

Android Gradle系列-进阶篇

这篇文章我要向你介绍的是关于如何使用Gradle来更加优雅的管理多个module之间的依赖关系。 相信你一定有这样的经历:主项目依赖于多个子项目,或者项目间互相依赖。...不同子项目间的依赖的第三方库版本又没有进行统一,升级一个版本所有依赖的项目都要进行修改;甚至minSdkVersion与targetSdkVersion也不相同。...今天我们就来解决这个问题,让Gradle版本管理更加优雅。 1 Google推荐 之前的文章Gradle系列-运用篇的dependencies使用的是最基本的引用方式。...无需再对所用的module进行逐一修改与统一配置。 2 BuildSrc&Kotlin 如果你的项目使用kotlin,那么buildSrc&Kotlin的统一管理方案将更适合你。...搭建好了目录,现在我们src/main/java下使用kotlin新建Dependencies文件(文件名任意),该文件中将之前的配置项放进来,只是使用kotlin语法进行实现而已,转化的代码如下

1.4K20

【Android Gradle 插件】Gradle 自定义 Plugin 插件 ⑤ ( 自定义插件获定义方法 | 插件创建 Gradle 任务 | 代码示例 )

配置关联 : 【Android Gradle 插件】Gradle 依赖管理 ① ( org.gradle.api.Project 配置 | Android Gradle 插件配置与 Gradle 配置关联...面板的 Task 任务 , 都是 Android Gradle 插件定义的 , 自定义插件 , 也可以自定义 Gradle 任务 ; 首先 , 先自定义 Task 任务 , 继承 DefaultTask...() { println 'MyTask TaskAction' } } 然后 , 自定义插件 , 创建 Task 任务 , 并为其制定依赖 ; 这里将 MyTask 任务命名为...插件的扩展属性 , 必须在 Gradle 分析完成之后才能进行 , 否则获取不到 project.afterEvaluate { println project.myplugin.name...插件的扩展属性 , 必须在 Gradle 分析完成之后才能进行 , 否则获取不到 project.afterEvaluate { println project.myplugin.name

1.7K20

【Android Gradle 插件】自定义 Gradle 插件模块 ③ ( Gradle 插件模块发布配置 | Windows 本地 Maven 仓库地址 | 将插件上传到本地 Maven 仓库 )

Gradle 插件】Gradle 依赖管理 ① ( org.gradle.api.Project 配置 | Android Gradle 插件配置与 Gradle 配置关联 ) ★ Android.../han1202012/Android_UI 一、自定义 Gradle 插件发布配置 ---- 在上一篇博客 【Android Gradle 插件】自定义 Gradle 插件模块 ② ( 模块定义插件...| 引入自定义 Gradle 插件模块 | 配置 Gradle 插件上传选项 | 配置分组名称版本号 ) , 定义完插件后 , 自定义 Gradle 插件模块 的 build.gradle 构建脚本...Gradle 插件的版本号 version '0.1' // 自定义 Gradle 插件的名称 , 默认为工程名 // 也可以 publishing / publications 脚本块 自己指定...本地 Maven 仓库地址 ---- Windows 系统 , 本地仓库的目录为 " C:\Users\用户名.m2\repository " ; 我的电脑上 , 实际的目录为 " C:\Users

92310

从精准化测试看ASMAndroid的强势插入-Gradle插件

hl=zh-cn#new_configurations Gradle Plugin有三种存在形式: 构建脚本:直接写在项目当前的build.gradle buildSrc:项目根目录下的buildSrc...buildSrc,不用每次publish到App,可以直接参与编译,调试比较方便,但是等插件稳定后,通过独立的插件项目,可以让插件的集成和管理更加方便。...使用 使用插件的项目根目录Gradle文件,指定访问mavenLocal,同时,使用groupId、artifactId和version组成对插件的引用,如下所示。...复制中间产物的过程,就是我们对产物进行修改的时机。...Gradle使用Gradle需要对原有脚本做一些改造,首先,要将build.gradle脚本改为buld.gradle.kts,然后将Kotlin代码放到src/man/kotlin目录下,最后,脚本的代码也要做相应的更新

1K40

Android Gradle插件

Gradle 就是工程的管理,帮我们做了依赖、打包、部署、发布、各种渠道的差异管理等工作。...Gradle脚本是基于Groovy语言来编译执行的,Java、Groovy、Kotlin等都是基于JVM运行的,所以他们语法上共性很多,熟悉Java的同学应该对Groovy上手很快 编写方法 Android...优点: 项目构建时,Gradle 会自动编译项目目录下的 buildSrc 文件夹下的构建脚本和源码,并将其添加到项目构建脚本的 classpath ,因此使用 buildSrc 创建的插件时,无需再手动指定...classpath(依赖的名字)(当然也可以自己创建id) buildSrc 文件夹构建脚本和 Gradle 插件同一项目均可见,因此同一项目中的其他模块也可以使用 buildSrc 创建的插件...Gradle用处 gradle插件修改第三方代码 1、我们知道在打包过程,可以通过动态修改字节码,来进行插桩,实现埋点等业务,那么,什么时机插入呢?

1.2K20

Android安卓进阶之——相比 Groovy 脚本, KTS 性能到底怎么样?

Groovy开发的体验并不太好,Android Gradle插件4.0之后支持Gradle构建配置中使用Kotlin 脚本 (KTS),用于替代 Groovy(过去 Gradle 配置文件中使用的编程语言...比如我们需要对clean build进行基准化分析,您可以创建一个gradle-profiler执行的场景: # /scenarios.txt clean\_build...这些测试运行在一个包含大量subProject的大型项目中,并且它们 Groovy 和 Kotlin DSL 上运行以进行比较。...abi 更改(支持的abi发生变化,可以理解为大多数缓存失效,大部分代码需要重新编译) buildSrc 非 abi 更改(即buildSrc的普通修改) Use Case Groovy Kotlin...KTS与Groovy DSL的编译速度相差不大 由上可知,KTS目前的优缺点都非常明显,易用性上非常突出,性能方面有一定劣势,Gradle官方也一直优化,读者可以根据自己的项目情况决定是否将构建配置从

1.5K41

Gradle Kotlin DSL指南

本章详细介绍了主要的Kotlin DSL结构,以及如何使用它与Gradle API进行交互。 如果您有兴趣将现有的Gradle构建迁移到Kotlin DSL,也请参阅专用迁移部分。...可以依赖项声明和configurations{}块为配置名使用字符串字面量。 在这种情况下,IDE无法帮助你发现可用的配置,但你可以相应的插件文档或运行gradle依赖查找它们。...一个常见的例子是根项目构建脚本配置子项目。 采用这种方法意味着您将不能对插件提供的模型元素使用类型安全访问器。你将不得不依赖字符串字面量和标准的Gradle api。...下面的示例做了与前一节完全相同的事情,但它使用了委托属性,并重用了这些引用来代替字符串-文字任务路径: 使用Kotlin委托属性 build.gradle.kts val check by tasks.existing...同样的方法设置和初始化脚本中都可以工作,除了你分别使用by settings和by gradle代替by project

10K20

Kotlin + buildSrc:更好的管理Gadle依赖!

管理Gradle依赖的三种不同方法: 手动管理 使用Google推荐的“ext” Kotlin + buildSrc 1、手动管理 这是一种大多数人在采用的管理依赖的方法,但每次升级依赖库时都需要做大量的手动更改...Google推荐:使用gradle的extra属性 GoogleAndroid官方文档推荐这种管理依赖的方法。许多项目例如ButterKnife、Picasso等都在使用这种方法。...Kotlin + buildSrc == Android Studio Autocomplete 您需要在您的项目里创建一个buildSrc模块,然后编写kotlin代码来管理依赖库,使得IDE支持自动补全...Sync任务,现在我们可以Android Studio访问Dependencies.kt任何值了。...它支持自动补全和单击跳转,使得您无需文件之间手动来回切换,方便你更好的管理Gradle依赖

2.3K10

为什么要选择VersionCatalog来做依赖管理?

我们最近也算是成功接入了VersionCatalog,过程也还是有点曲折的,总体来说我觉得确实比我们当前的ext,或者说是用buildSrc的形式进行依赖管理是个更成熟的方案吧。...Android 依赖管理及通用项目配置插件 【Gradle7.0】依赖统一管理的全新方式,了解一下~ 之前大部分文章只介绍了技术方案,很少会去横向对比几个技术方案之间的优劣。...其中ext可以绝大部分的.gradle中去进行声明,所以就会导致依赖声明的过于零散。而这部分问题就不存在于buildSrc和toml,他们只能被声明固定的位置上。...我们拉取了apk包的依赖,然后用HashSet进行了拉平,去除重复依赖,然后通过diff对比前后差异,基本符合预期的情况下我们就可以进行快速的合入。...结尾 其实本文的核心是给大家分析下几种依赖管理方式的优劣,然后对于还在使用gradle ext的大佬,其实可以逐渐考虑进行替换了。 最后祝大家新年快乐了,兔年大吉吧!

59520
领券