美文网首页
Gradle Maven 之 Idea 之 构建工具参考

Gradle Maven 之 Idea 之 构建工具参考

作者: googoler | 来源:发表于2020-07-02 09:10 被阅读0次

Gradle

  • gradle 新的依赖关系:

    gradle3.0或者以上版本 3.0之前(deprecated) 说明 作用
    implementation compile gradle升级到3.0之后,新增了 implementation, 而compile 方式被标记为了deprecated, compile 在3.0之后仍然可以使用,但是 gradle 官方说会在 gradle 后续的某次重要升级后变为不可用. 如果我们使用了implementation方式来依赖项目的话,那么这个库就在编译时期,只对当前的module可见,对其他的module不可见,但是在运行使其是可见的,这种方式的好处是可以显著减少 build项目的时间,因为假如该依赖库有接口或者代码变动,那么Gradle只会去重新编译和它有直接依赖关系的module,也就是该库不存在传递性
    api compile 同上 使用api方式来依赖项目或者库的话,那么这个库,在编译时期和运行时期都可以对其他module可见
    compileOnly provided 3.0之后版本,使用compileOnly来替代provided 假如在项目中,对某些库你只是想要在编译时期使用,而在运行时期并不需要这个库,你可以使用这种方式!
    runtimeOnly apk 3.0之后,使用 runtinmeOnly来替代apk Gradle 在运行时会将该库添加到 build 的 output 中去
  • Android打包apk通过gradle脚本实现动态替换so库文件
    在build.gradle文件中加入以下代码,实现打包apk动态替换so库文件:

    project.afterEvaluate {
        //动态替换so库文件,在执行packageRelease任务之前将armeabi-v7a目录下的所有so文件拷贝到armeabi目录
        packageRelease.doFirst {
            delete{
                delete 'build/intermediates/transforms/stripDebugSymbol/release/0/lib/armeabi'
            }
           copy{
                from 'build/intermediates/transforms/stripDebugSymbol/release/0/lib/armeabi-v7a'
                into 'build/intermediates/transforms/stripDebugSymbol/release/0/lib/armeabi'
                include '*.so'
            }
            delete{
                delete 'build/intermediates/transforms/mergeJniLibs/release/0/lib/armeabi'
            }
            copy{
                from 'build/intermediates/transforms/mergeJniLibs/release/0/lib/armeabi-v7a'
                into 'build/intermediates/transforms/mergeJniLibs/release/0/lib/armeabi'
                include '*.so'
            }
        }
       }
    

Maven

相关文章

网友评论

      本文标题:Gradle Maven 之 Idea 之 构建工具参考

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