# Project-ComposingBuild **Repository Path**: Nates/project-composing-build ## Basic Information - **Project Name**: Project-ComposingBuild - **Description**: 使用 Composing Builds 管理 build.gradle - **Primary Language**: Android - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-07-06 - **Last Updated**: 2022-07-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Project-ComposingBuild #### 介绍 使用 Composing Builds 管理 build.gradle #### 使用说明 1. 创建一个plugin-version(名字自起)的Library ![创建一个plugin-version(名字自起)的Library](https://images.gitee.com/uploads/images/2022/0706/171033_23cfde5d_1839628.png "11111111111111111111111.png") 2. 在工程的settings.gradle中添加includeBuild 'plugin-version' (关键) ![输入图片说明](https://images.gitee.com/uploads/images/2022/0706/171219_8f23950c_1839628.png "222222222222222222222222.png") 3. 配置 plugin-version 的 build.gradle.kts ``` plugins { id("java-gradle-plugin") id("org.jetbrains.kotlin.jvm") version "1.6.10" } repositories { google() mavenCentral() gradlePluginPortal() } java { sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 } dependencies { //添加Gradle相关的API,否则无法自定义Plugin和Task implementation(gradleApi()) implementation("org.jetbrains.kotlin:kotlin-gradle-plugin:1.6.10") } gradlePlugin { plugins { create("version") { //添加插件 id = "com.songfei.plugin.version" //在根目录创建类 VersionPlugin 继承 Plugin implementationClass = "com.songfei.plugin.version.VersionPlugin" } } } ``` 4. 创建一个VersionPlugin类(名字自起) 继承 Plugin ![输入图片说明](https://images.gitee.com/uploads/images/2022/0706/171545_9e42be60_1839628.png "3333333333333333333333.png") 5. 使用方法,创建一个AndroidConfig类(名字自起) ``` object AndroidConfig { const val COMPILESDK = 32 const val APPLICATIONID = "com.songfei.project_composingbuild" const val MINSDK = 21 const val TARGETSDK = 32 const val VERSIONCODE = 1 const val VERSIONNAME = "1.0" const val TESTINSTRUMENTATIONRUNNER = "androidx.test.runner.AndroidJUnitRunner" } ``` 在 app 中的 build.gradle 中 导入插件引用地址 import com.songfei.plugin.version.* 然后在 plugins 中添加插件 id 'com.songfei.plugin.version' 后就可以直接使用 ``` defaultConfig { applicationId AndroidConfig.APPLICATIONID minSdk AndroidConfig.MINSDK targetSdk AndroidConfig.TARGETSDK versionCode AndroidConfig.VERSIONCODE versionName AndroidConfig.VERSIONNAME testInstrumentationRunner AndroidConfig.TESTINSTRUMENTATIONRUNNER } ``` ![输入图片说明](https://images.gitee.com/uploads/images/2022/0706/171905_aebd852f_1839628.png "444444444444.png")