天籁晴空 2021-05-20 13:27 采纳率: 0%
浏览 90

Composing builds 统一管理依赖

Composing builds 统一管理依赖    每次关闭编辑器重新打开 后  引用 版本和依赖都失效  得重新  sync now才生效  有大佬给指点下怎么解决么

  • 写回答

1条回答 默认 最新

  • 码农阿豪@新空间 新星创作者: 前端开发技术领域 2024-06-13 22:11
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    问题描述:每次关闭编辑器重新打开后,引用的版本和依赖都失效,需要重新sync才能生效。如何解决? 解决方案:使用Composing builds来统一管理依赖,避免此问题的发生。 Composing builds是Android Studio 3.0及以上版本引入的一个新功能,它允许您在项目的任何模块中定义依赖关系,从而统一管理依赖。 假设我们有一个名为"app"的模块和一个名为"library"的模块。在之前的做法中,我们需要在"app"模块的build.gradle文件中添加对"library"模块的依赖关系:
    dependencies {
        implementation project(':library')
    }
    

    但是,每当我们更改了"library"模块的版本时,都需要手动更新"app"模块的build.gradle文件。而使用Composing builds,我们可以在"app"模块的build.gradle文件中定义一个发布版本,并在"library"模块中引用该版本:

    // app模块的build.gradle文件
    dependencies {
        implementation 'com.example.library:library:1.0'
    }
    // library模块的build.gradle文件
    dependencies {
        implementation "com.example.library:library:$publishedVersion"
    }
    

    这样,每当我们更改了"library"模块的版本时,只需要更新发布版本即可,不需要手动更新"app"模块的build.gradle文件。 另外,Composing builds还有一个好处,就是可以在根目录下添加一个buildSrc目录,用于统一管理项目中的库和插件版本。这样,每当我们更改了一个版本时,所有依赖该版本的模块都会自动更新。示例目录结构如下:

    ├── app
    │   ├── build.gradle
    │   └── ...
    ├── library
    │   ├── build.gradle
    │   └── ...
    └── buildSrc
        ├── build.gradle.kts
        ├── dependencies.gradle.kts
        └── ...
    

    上面的"dependencies.gradle.kts"文件用于定义项目中使用的库和插件版本:

    versions = mapOf(
        "appcompat" to "1.2.0",
        "kotlin" to "1.4.21",
        "gradle" to "4.1.1"
    )
    dependencies {
        implementation "androidx.appcompat:appcompat:$versions.appcompat"
        implementation "org.jetbrains.kotlin:kotlin-stdlib:$versions.kotlin"
    }
    buildscript {
        dependencies {
            classpath "com.android.tools.build:gradle:$versions.gradle"
            classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$versions.kotlin"
        }
    }
    

    然后,在"app"和"library"模块的build.gradle文件中,我们可以使用这些版本定义:

    // app模块的build.gradle文件
    dependencies {
        implementation deps.appcompat
        implementation deps.kotlin
    }
    // library模块的build.gradle文件
    dependencies {
        implementation deps.appcompat
        implementation deps.kotlin
    }
    

    这样,每当我们更改了一个版本时,所有依赖该版本的模块都会自动更新,无需手动修改每个模块的build.gradle文件。 综上所述,使用Composing builds可以统一管理依赖,避免每次关闭编辑器重新打开后需要重新sync才能生效的问题。同时,也可以在根目录下的buildSrc目录中统一管理项目中的库和插件版本,提高开发效率。

    评论

报告相同问题?