Gradle 差异化构建

Posted 吴添龙

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Gradle 差异化构建相关的知识,希望对你有一定的参考价值。

  • Compile 默认的依赖方式,任何情况下都会依赖。
  • Provided 只提供编译时依赖,打包时不会添加进去。
  • Apk 只在打包Apk包时依赖,这个应该是比较少用到的。
  • TestCompile 只在测试时依赖
  • DebugCompile 只在Debug构建时依赖
  • ReleaseCompile 只在Release构建时依赖

 

1.实现差异化构建

这里我们在src目录下建立debug目录和release目录,并在这两个目录下面建立一个SdkManager类,这里要注意debug和release的包结构需要相同,且不能在main目录下仍有相同的类。

public class TestApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        SdkManager.init(this);
    }
}


2. 子module debugCompile 主工程引用
android {
     ...
    publishNonDefault true
}
dependencies {
    ...
    debugCompile \'com.facebook.stetho:stetho:1.4.2\'
}


主工程要添加如下代码,让主工程打debug包时,子工程也打debug. 主工程打release包时,子工程也打release包
dependencies {
     ...
    debugCompile project(path:\':testlibrary\',configuration:\'debug\')
    releaseCompile project(path:\':testlibrary\',configuration:\'release\')
}


 

以上是关于Gradle 差异化构建的主要内容,如果未能解决你的问题,请参考以下文章

#yyds干货盘点#Bazel与Gradle工具差异

如何添加jcenter仓库 gradle依赖

ManActivity + 启动时的片段差异

片段内部静态类和gradle问题

为啥尽管源代码没有变化,但从一个系统到另一个系统的片段数量却有很大差异?

gradle (v7.5) 使用