美文网首页
Gradle Configuration

Gradle Configuration

作者: ThomasLiao | 来源:发表于2020-08-16 23:55 被阅读0次

    configuration

    configuration是gradle依赖管理里面的一个概念。

    譬如,api和implement就是我们经常用的configuration

    dependencies {
        implementation fileTree(dir: 'libs', include: ['*.jar'])
        implementation 'androidx.appcompat:appcompat:1.0.2'
        implementation 'com.android.support:support-annotations:28.0.0'
        implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
        implementation "androidx.multidex:multidex:2.0.1"
    
        api 'com.squareup.retrofit2:retrofit:2.4.0'
        api 'com.squareup.retrofit2:adapter-rxjava2:2.4.0'
    }
    

    多角度看configuration

    从多角度看待,可帮助我们更加好的认识configuration

    • configuration就是一系列文件集合, 这些文件有可能在本地或者网络,build的时候会通过捞取相对应文件进行编译


      image.png
    • 也可以用更加丰富层次的角度看待configuration

    1. 表达了一系列的依赖关系,犹如一个多叉树的根结点,向上一提能够连根带土把所有结点都显示出来
    2. 从消费的角度看,表示需要的依赖,譬如要用retrofit实现网络功能,那么就要声明对retrofit2的依赖(填入id,溯源获取相对应的jar文件--从本地或者网络)
    3. 从生产者角度,通过合适的配置,不同的variant可以通过不同的configuration生成不同的产物, 譬如我们定义了两个不同的configuration:localConf 和 netConf, 目的是构建不同的app,一个没有网络库只本地使用,一个有网络访问
    localConf "com.exam.local:localdb:1.0.0"
    netConf "com.squareup.okhttp3:3.4.2"
    

    configuration helps a lot

    直接使用javac 来编译我们的java项目,只需要设置classpath即可, 如

    C:\>java -classpath \examples;\lib\Banners.jar greetings.Hi
    

    但是无法解决以下问题:

    1. 版本管理
    2. 冲突检测
    3. 同个源码编译不同的包非常麻烦

    编译工具的发展是个长期的过程,从make、ant、maven、gradle,我们能看到工具的进步,效率的提高,后续会详细分析各个编译工具的特点如maven的xml、gradle的dsl

    相关文章

      网友评论

          本文标题:Gradle Configuration

          本文链接:https://www.haomeiwen.com/subject/ijaodktx.html