为了账号安全,请及时绑定邮箱和手机立即绑定

groovy-gradle-依赖及外部命令执行api

标签:
Android

依赖相关api:

/**
 * 依赖配置api
 */
buildscript {ScriptHandler scriptHandler->
    //配置我们工程的仓库地址,闭包的参数一般都省去,闭包中的this,owner,delegate中的方法都是可以直接调用
    scriptHandler.repositories { RepositoryHandler repositoryHandler->
        repositoryHandler.google()
        repositoryHandler.jcenter()
        repositoryHandler.mavenLocal()
        repositoryHandler.mavenCentral()
        repositoryHandler.ivy{}
        repositoryHandler.maven {//私有maven仓库,可以配置多个
            MavenArtifactRepository mavenArtifactRepository->
            //一般是公司内部的maven地址
            mavenArtifactRepository.name 'hexindai'
            mavenArtifactRepository.url 'http://localhost:8081:/nexus/repositories'
            mavenArtifactRepository.credentials{
                username='amdin'
                password='andim124'
            }
        }
    }
    //buildscript中的dependencies方法是配置我们工程的"插件"依赖,是gradle本身框架对第三方库的依赖
    scriptHandler.dependencies {
        //应用下面的之后,就能指定工程为Android工程或Android lib
        classpath 'com.android.tools.build:gradle:3.0.0'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}
//app中project中的dependencies是配置网站或者app需要引用第三方库.(为应用程序添加依赖)
//应用程序的依赖一般有:
//依赖本地库
implementation fileTree(include: ['*.jar'], dir: 'libs')//fileTree,file ,files
//依赖远程库
compile 'com.jakewharton:butterknife:8.4.0'(jar包,var包,arr包(包含资源的jar包Android独有))
//依赖第三方有源码的工程
compile project(':baidumobstat-react-native')
//依赖冲突:第三方库中引入了相同的库
compile 'io.reactivex.rxjava2:rxjava:2.0.7'{
    exclude module :'support-v4'//通过module方式排除依赖
    exclude group:'com.android.support'//排除同一个组下的多个库冲突
}
//传递依赖.比如 compile 'com.squareup.retrofit2:retrofit:2.1.0',retrofit中引入的
//第三方库,我们项目中也要使用,就可以使用传递依赖,将传递依赖设为true
compile 'io.reactivex.rxjava2:rxjava:2.0.7'{
    exclude module :'support-v4'//通过module方式排除依赖
    exclude group:'com.android.support'//排除同一个组下的多个库冲突
    transitive false //false默认禁止传递依赖,尽量不允许使用传递依赖,因为不确定性.万一依赖的工程升级了,不依赖工程c了.
    
}
//引入方式:compile和provided
/*
compile 第三方依赖里面的类和资源都会被打入到工程中.
provided(占位编译) 编译的时候回引入第三方的类和资源,打包时不会打入项目中.运行时不处理会报错.
比如:场景1:Tinker库,他的作用编译时生成application类,只要生成了application类,运行时是不需要的.
场景2:当前工程是类库工程的话,如果类库中引入的okhttp,我们项目中也使用了okhttp,那么类库中就可以使用provided
*/

原文链接:http://www.apkbus.com/blog-953329-77647.html

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消