Gradle-----buildSrc

简介: 在Android项目中,使用buildSrc抽象命令式逻辑

buildSrc

我们在编写Android项目时,当我们的项目越来越复杂的时候,我们的业务类以及所需的其他引用会写的到处都是,所以Gradle建议我们使用buildSrc抽象式命令逻辑来构建我们的项目。

之前

在之前我们为了把在build.gradle中dependencies所有的引用库都堆积到一起比如:

···
implementation("com.google.protobuf:protobuf-javalite:3.17.3")
implementation("androidx.datastore:datastore:1.0.0-rc01")
//more...
···
这样我们就不能很好的去管理项目中引用的代码库,使用gradle中的buildSrc可以很好的解决这个问题。

构建buildSrc

根据官方文档buildSrc首先我们先要在Android项目的根目录(注意:一定要是根目录与build.gradle(project)同级)中创建一个buildSrc文件夹如:

image.png
然后在该目录下创建一个build.gradle文件。下一步我们同步一下我们的项目,等待Android studio自动引用相关插件。等待同步完成。我们根据官方文档创建以下项目:

buildSrc/build.gradle
···
repositories {

mavenCentral()

}

dependencies {

testImplementation 'junit:junit:4.13'

}
···

├── buildSrc
│   ├── build.gradle
│   └── src
│       ├── main
│       │   └── java
│       │       └── com
│       │           └── enterprise
│       │               ├── Deploy.kt
│       │               └── DeploymentPlugin.kt
│       └── test
│           └── java
│               └── com
│                   └── enterprise
│                       └── DeploymentPluginTest.kt
├── settings.gradle
├── subprojecto-one
│   └── build.gradle.kts
└── subproject-two
    └── build.gradle.kts

接下来我们在Depoly.kt文件下编写一个版本控制代码:

object Deploy{
    const val app_version="1.0.0"
}

紧接着在build.gradle引用我们编写的版本控制代码

defaultConfig {
        applicationId "com.example.learnproject"
        minSdk 24
        targetSdk 32
        versionCode 1
        versionName Deploy.app_version

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }

这样我们就把versionName的版本号给抽离了出来,当然你也可以把其他的给抽离出来比如 minSdk,targetSdk等等。

当然我们也可以把依赖给抽离出来,在Deploy文件中创建一个Dependencies对象,然后添加我们需要的依赖如下:

   object Versions{

       object AndroidX{
          const val annotation = "1.1.0"
       }
   }


object Dependencies {
 const val androidx_annotation = "androidx.annotation:annotation:${Versions.AndroidX.annotation}"
}

然后在build.gralde的dependenices中使用:

    implementation Dependencies.androidx_annotation

至此关于使用gradle中buildSrc来抽象命令式逻辑使得你的Android项目更加的清晰,易于管理。

(记录一个错误代码,当没有在buildSrc目录下创建build.gradle文件,就编写依赖并使用的情况下会出现一个属性未找到的错误,经排查应该是gradle执行的时候没有关联上,解决办法:去项目目录删除.grdle,buildSrc目录,重新同步项目---->创建buildSrc---->创建build.gradle--->同上代码并同步项目)

目录
相关文章
|
4月前
|
Java Android开发
eclipse导入项目时,报错:One or more cycles were detected in the build path of project ....
eclipse导入项目时,报错:One or more cycles were detected in the build path of project ....
193 3
|
5月前
|
Java Maven
IDEA 报 Unable to import maven project: See logs for details
IDEA 报 Unable to import maven project: See logs for details
59 0
|
8月前
|
缓存 Java API
build.gradle文件介绍,gradle版本对应
build.gradle文件介绍,gradle版本对应
204 0
|
Java Maven
解决 idea中 Unable to reload Maven project
解决 idea中 Unable to reload Maven project
492 0
|
前端开发 Java Maven
Gradle build.gradle 文件
Gradle build.gradle 文件
Gradle build.gradle 文件
|
Android开发
Migrate Project to Gradle? This project does not use the Gradle build system
Migrate Project to Gradle? This project does not use the Gradle build system
109 0
|
Java Maven
Unable to import maven project: See logs for details IDEA问题解决办法
本文介绍Unable to import maven project: See logs for details IDEA问题的解决办法。
382 0
Unable to import maven project: See logs for details IDEA问题解决办法
|
Python
Pytest----如何安装和使用插件
Pytest----如何安装和使用插件
200 0

热门文章

最新文章