根据 Google 建议使用额外属性通过您的项目共享它们,我遇到了一个基于 buildSrc + Kotlin gradle 脚本的 Android/Kotlin 项目的不错的解决方案。与其他经典方法相比,该解决方案为我提供了非常好的优势,即build.gradle
每个模块(加上根文件)具有多个 Groovy 写入文件及其依赖项和参数。主要有:
- 使用 kotlin 语法。
- 编译错误。
- 自动完成。
- 单击支持(导航到定义)
- 将 gradle 文件元数据信息集中在一个文件中。
查看这篇文章了解更多信息。
如果我没记错的话,Kotlin-dsl 团队成员建议使用 IntelliJ 来实现它,并且与 Android Studio 的集成似乎还没有完全完成,因为我仍然看到一些 Kotlin gradle 脚本代码以红色突出显示。但是,它编译得很好。奇怪的是,如果我克隆例如Prefekt 存储库,我可以build.gradle.kts
在 gradle 同步后完美地看到内容而没有红色标记。我几乎在我的项目中完成了所有工作(同步 gradle、使缓存无效、删除缓存、相同的 gradle 包装器等)以消除这些标记而没有任何成功。以下是一些附带问题:
- 我究竟做错了什么?我应该怎么做才能去除那些红色标记?
- 虽然我喜欢这种方法,但我会很想念的一件事是 gradle 文件中过时的依赖项检查突出显示,这表明该库有一个新的 xyx 版本。有没有办法让它与这种方法一起工作?
- 有没有办法在 buildSrc Kotlin 类中使用gradle 项目属性?例如,使用属性文件(例如version.properties)和 gradle 属性非常常见,这
rootDir
对于获取它们的路径非常有帮助。我们可以Paths.get("").toAbsolutePath().toString()
为此目的使用,但这不是一个干净的解决方案。 - 您一般如何看待这种方法?