class Repository { Map androidLibraries Map kotlinLibraries Map thirdLibraries Map uiLibraries Map debugLibraries Map testLibraries } ext { newRepository = this.&innerNewRepository } static Repository innerNewRepository() { def androidLibrariesVersion = "28.0.0" def android_plugin_version = '3.1.4' def androidLibraries = [ //https://developer.android.com/topic/libraries/support-library/features.html androidCompatV4 : "com.android.support:support-v4:${androidLibrariesVersion}",//v4 all androidCompatV7 : "com.android.support:appcompat-v7:${androidLibrariesVersion}", androidCompatV13 : "com.android.support:support-v13:${androidLibrariesVersion}", androidDesign : "com.android.support:design:${androidLibrariesVersion}", androidPrecent : "com.android.support:percent:${androidLibrariesVersion}", androidAnnotations : "com.android.support:support-annotations:${androidLibrariesVersion}", androidCard : "com.android.support:cardview-v7:${androidLibrariesVersion}", androidRecyclerView : "com.android.support:recyclerview-v7:${androidLibrariesVersion}", transition : "com.android.support:transition:${androidLibrariesVersion}", androidExif : "com.android.support:exifinterface:${androidLibrariesVersion}", gridlayout : "com.android.support:gridlayout-v7:${androidLibrariesVersion}", dynamicAnimation : "com.android.support:support-dynamic-animation:${androidLibrariesVersion}", constraintLayout : 'com.android.support.constraint:constraint-layout:1.1.3', multiDex : "com.android.support:multidex:1.0.2", dataBinding : "com.android.databinding:compiler:${android_plugin_version}", //lifecycle lifecycle : "android.arch.lifecycle:runtime:1.1.1",//not necessary if you are using lifecycle:extensions or lifecycle:common-java8 lifecycleAPT : "android.arch.lifecycle:compiler:1.1.1",// not needed if you are using the DefaultLifecycleObserver from common-java8 artifact. lifecycleJava8 : "android.arch.lifecycle:common-java8:1.1.1", //LiveData, and ViewModel lifecycleExtensions : "android.arch.lifecycle:extensions:1.1.1",//For LiveData, and ViewModel liveDataReactiveStreams: "android.arch.lifecycle:reactivestreams:1.1.1",//To use LiveData with ReactiveStreams API //room room : "android.arch.persistence.room:runtime:1.0.0", roomApt : "android.arch.persistence.room:compiler:1.0.0", roomRxJava2 : "android.arch.persistence.room:rxjava2:1.0.0", roomGuava : "android.arch.persistence.room:guava:1.1.0-beta3", //paging paging : "android.arch.paging:runtime:1.0.0", //https://github.com/google/flexbox-layout/ flexbox : 'com.google.android:flexbox:1.0.0', ] def anko_version = '0.10.7' def kotlin_version = '1.3.11' def kotlinLibraries = [ //Kotlin kotlinStdlib : "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version", kotlinReflect : "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version", kotlinCoroutines : 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.1.0',//协程库 kotlinAndroidCoroutines : "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.1.0", //https://github.com/JakeWharton/retrofit2-kotlin-coroutines-adapter retrofitKotlinAdapter : 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-experimental-adapter:1.0.0', //https://github.com/android/android-ktx:android_ktx: A set of Kotlin extensions for Android app development //https://android.github.io/android-ktx/core-ktx/index.html androidKTX : 'androidx.core:core-ktx:1.0.0', //https://github.com/ReactiveX/RxKotlin rxKotlin : 'io.reactivex.rxjava2:rxkotlin:2.2.0', //https://github.com/enbandari/KotlinTuples tuples : "com.bennyhuo.kotlin:kotlin-tuples:1.0", //https://github.com/enbandari/ObjectPropertyDelegate objectPropertyDelegate : "com.bennyhuo.kotlin:opd:1.0-rc-2", //https://github.com/enbandari/KotlinDeepCopy deepCopyReflect : "com.bennyhuo.kotlin:deepcopy-reflect:1.0", deepCopy : "com.bennyhuo.kotlin:deepcopy-annotations:1.1.0", deepCopyApt : "com.bennyhuo.kotlin:deepcopy-compiler:1.1.0", //https://github.com/enbandari/ReleasableVar releasableVar : "com.bennyhuo.kotlin:releasable-nonnull-vars:1.1.0", //kotlin functional, https://arrow-kt.io/ arrowCore : "io.arrow-kt:arrow-core:0.8.2", //============================================================================ //Anko //============================================================================ // Anko https://github.com/Kotlin/anko ankoAll : "org.jetbrains.anko:anko:${anko_version}", ankoCommons : "org.jetbrains.anko:anko-commons:$anko_version",// Anko Commons ankoCommonsV4 : "org.jetbrains.anko:anko-support-v4-commons:$anko_version", ankoCommonsV7 : "org.jetbrains.anko:anko-appcompat-v7-commons:$anko_version", ankoSQLite : "org.jetbrains.anko:anko-sqlite:$anko_version", // Anko SQLite // Anko Layouts , sdk15, sdk19, sdk21, sdk23 are also available, 只需要依赖一个sdk ankoLayoutSDK : "org.jetbrains.anko:anko-sdk27:$anko_version", ankoLayoutCompatV7 : "org.jetbrains.anko:anko-appcompat-v7:$anko_version", ankoLayoutCompatV4 : "org.jetbrains.anko:anko-support-v4:$anko_version", ankoLayoutDesign : "org.jetbrains.anko:anko-design:$anko_version", ankoLayoutRecyclerView : "org.jetbrains.anko:anko-recyclerview-v7:$anko_version", ankoLayoutCardView : "org.jetbrains.anko:anko-cardview-v7:$anko_version", ankoLayoutGridLayout : "org.jetbrains.anko:anko-gridlayout-v7:$anko_version", ankoLayoutPercent : "org.jetbrains.anko:anko-percent:$anko_version", ankoCoroutines : "org.jetbrains.anko:anko-coroutines:$anko_version", //anko Coroutines ankoLayoutCoroutine : "org.jetbrains.anko:anko-sdk25-coroutines:$anko_version", //Anko Layouts Coroutine listeners ankoLayoutCompatV7Coroutine: "org.jetbrains.anko:anko-appcompat-v7-coroutines:$anko_version", ankoDesignCoroutine : "org.jetbrains.anko:anko-design-coroutines:$anko_version", ankoRecyclerViewCoroutines : "org.jetbrains.anko:anko-recyclerview-v7-coroutines:$anko_version" ] def rxBindingVersion = '2.1.1' def autoDisposeVersion = '1.0.0-RC3' def retrofitVersion = '2.5.0' def daggerVersion = "2.17" def thirdLibraries = [ //============================================================================ //RxJava //============================================================================ //https://github.com/ReactiveX/RxJava rxJava : "io.reactivex.rxjava2:rxjava:2.2.9", //https://github.com/ReactiveX/RxAndroid rxAndroid : 'io.reactivex.rxjava2:rxandroid:2.1.1', //https://github.com/JakeWharton/RxBinding rxBinding : "com.jakewharton.rxbinding2:rxbinding:$rxBindingVersion", rxBindingV4 : "com.jakewharton.rxbinding2:rxbinding-support-v4:$rxBindingVersion", rxBindingCompat : "com.jakewharton.rxbinding2:rxbinding-appcompat-v7:$rxBindingVersion", rxBindingDesign : "com.jakewharton.rxbinding2:rxbinding-design:$rxBindingVersion", rxBindingRecyclerView : "com.jakewharton.rxbinding2:rxbinding-recyclerview-v7:$rxBindingVersion", //https://github.com/uber/AutoDispose autoDispose : "com.uber.autodispose:autodispose:$autoDisposeVersion", autoDisposeLifecycleJDK8 : "com.uber.autodispose:autodispose-lifecycle-jdk8:$autoDisposeVersion", autoDisposeLifecycleArchcomponents: "com.uber.autodispose:autodispose-android-archcomponents:$autoDisposeVersion", //https://github.com/uber/RxDogTag rxDogTag : "com.uber.rxdogtag:rxdogtag:0.1.0", //RxReplay https://github.com/JakeWharton/RxRelay rxReplay : 'com.jakewharton.rxrelay2:rxrelay:2.0.0', //============================================================================ //OkHttp&Retrofit&Gson&Glide //============================================================================ //https://github.com/square/okhttp & https://github.com/square/retrofit okHttp : "com.squareup.okhttp3:okhttp:3.12.0", okHttpLogging : "com.squareup.okhttp3:logging-interceptor:3.12.0", retrofit : "com.squareup.retrofit2:retrofit:${retrofitVersion}", retrofitConverterGson : "com.squareup.retrofit2:converter-gson:${retrofitVersion}", retrofitRxJavaCallAdapter : "com.squareup.retrofit2:adapter-rxjava:${retrofitVersion}", retrofitRxJava2CallAdapter : "com.squareup.retrofit2:adapter-rxjava2:${retrofitVersion}", ////https://github.com/google/gson/blob/master/UserGuide.md#TOC-Overview gson : "com.google.code.gson:gson:2.8.5", //https://github.com/bumptech/glide glide : "com.github.bumptech.glide:glide:4.8.0", glideApt : 'com.github.bumptech.glide:compiler:4.8.0', glideOkHttp : 'com.github.bumptech.glide:okhttp3-integration:4.8.0', //============================================================================ //DI //============================================================================ //https://github.com/google/dagger dagger2 : "com.google.dagger:dagger:$daggerVersion", dagger2Android : "com.google.dagger:dagger-android:$daggerVersion", dagger2AndroidSupport : "com.google.dagger:dagger-android-support:$daggerVersion", dagger2Apt : "com.google.dagger:dagger-compiler:$daggerVersion", dagger2AndroidApt : "com.google.dagger:dagger-android-processor:$daggerVersion", jsr305 : 'com.google.code.findbugs:jsr305:2.0.1', //============================================================================ //ARouter //============================================================================ //https://github.com/alibaba/ARouter,注意:apt arouter 应该放在 apt dagger 后面 arouter : 'com.alibaba:arouter-api:1.4.1', arouterAnnotation : 'com.alibaba:arouter-compiler:1.2.2', //============================================================================ //AOP //============================================================================ /*aspectJrt*/ aspectj : 'org.aspectj:aspectjrt:1.8.9', //https://eclipse.org/aspectj/ //============================================================================ //Utils //============================================================================ //kv存储:https://github.com/tencent/mmkv、https://mp.weixin.qq.com/s/kTr1GVDCAhs5K7Hq3322FA mmkv : 'com.tencent:mmkv:1.0.17', //https://github.com/dmstocking/support-optional supportOptional : 'com.github.dmstocking:support-optional:1.2', //日志:https://github.com/JakeWharton/timber timber : "com.jakewharton.timber:timber:4.5.1", //发射工具:https://github.com/jOOQ/jOOR jOOR : "org.jooq:joor-java-6:0.9.7", //https://github.com/Blankj/AndroidUtilCode utilcode : 'com.blankj:utilcode:1.23.7', //https://github.com/yanzhenjie/AndPermission andPermission : 'com.yanzhenjie.permission:support:2.0.1', //image compression:https://github.com/Sunzxyong/Tiny tiny : 'com.zxy.android:tiny:0.0.5', //zip4j zip4j : 'net.lingala.zip4j:zip4j:1.3.2', //JobScheduler:https://github.com/evernote/android-job androidJob : 'com.evernote:android-job:1.2.0', //VideoCache:/https://github.com/danikula/AndroidVideoCache videoCache : 'com.danikula:videocache:2.7.0', //https://github.com/promeG/TinyPinyin tinypinyin : 'com.github.promeg:tinypinyin:2.0.3', //多渠道:https://github.com/Tencent/VasDolly vasDolly : 'com.leon.channel:helper:2.0.3', //Android P 反射限制:https://github.com/tiann/FreeReflection freeReflection : 'me.weishu:free_reflection:1.2.0' ] def debugLibraries = [ //https://github.com/square/leakcanary debugLeakCanary : "com.squareup.leakcanary:leakcanary-android:1.6.3", debugLeakCanaryFragment: "com.squareup.leakcanary:leakcanary-support-fragment:1.6.3", releaseLeakCanary : "com.squareup.leakcanary:leakcanary-android-no-op:1.6.3", //https://github.com/markzhai/AndroidPerformanceMonitor 卡顿监控 //http://blog.zhaiyifan.cn/2016/01/16/BlockCanaryTransparentPerformanceMonitor/ debugBlockCanary : "com.github.markzhai:blockcanary-android:1.4.0", releaseBlockCanary : "com.github.markzhai:blockcanary-no-op:1.4.0", //http://facebook.github.io/stetho/ 各种调试工具 stetho : 'com.facebook.stetho:stetho:1.4.2', stethoOkhttp3 : 'com.facebook.stetho:stetho-okhttp3:1.4.2', //https://github.com/eleme/UETool ui调试工具 ueTool : 'me.ele:uetool:1.0.15', //https://github.com/Kyson/AndroidGodEye 全面的调试工具 godeyeCore : 'cn.hikyson.godeye:godeye-core:2.1.1', godeyeMonitor : 'cn.hikyson.godeye:godeye-monitor:2.1.1', godeyeToolbox : 'cn.hikyson.godeye:godeye-toolbox:2.1.1', ] def uiLibraries = [ //qmui:https://qmuiteam.com/ qmui : 'com.qmuiteam:qmui:1.1.3', //https://github.com/GcsSloop/rclayout rclayout : 'com.gcssloop.widget:rclayout:1.6.0', /*adapter*/ //https://github.com/drakeet/MultiType multiType : 'me.drakeet.multitype:multitype:3.4.4', multiTypeKotlin : 'me.drakeet.multitype:multitype-kotlin:3.4.4', // https://github.com/Ztiany/WrapperAdapter wrapperAdapter : 'com.github.Ztiany:WrapperAdapter:3.0.7', /*image view about*/ //https://github.com/chrisbanes/PhotoView photoView : 'com.github.chrisbanes:PhotoView:2.1.3', //https://github.com/davemorrissey/subsampling-scale-image-view subsamplingScaleImageView: 'com.davemorrissey.labs:subsampling-scale-image-view:3.10.0', //https://github.com/hdodenhof/CircleImageView circleImageView : 'de.hdodenhof:circleimageview:2.1.0', //https://github.com/vinc3m1/RoundedImageView roundedImageView : 'com.makeramen:roundedimageview:2.3.0', //https://github.com/Piasy/BigImageViewer bigImageViewer : 'com.github.piasy:BigImageViewer:1.5.0', //https://github.com/Piasy/BigImageViewer bigImageViewerGlideLoader: 'com.github.piasy:GlideImageLoader:1.5.0', //https://github.com/iielse/ImageWatcher,高仿微信可拖拽返回 imageWatcher : 'com.github.iielse:ImageWatcher:1.1.1', //https://github.com/stfalcon-studio/StfalconImageViewer stfalconImageviewer : 'com.github.stfalcon:stfalcon-imageviewer:0.1.0', //https://github.com/gjiazhe/ScrollParallaxImageView scrollparallaximageview : 'com.gjiazhe:scrollparallaximageview:1.0', /*view pager about*/ //https://github.com/HuanHaiLiuXin/CoolViewPager coolviewpager : 'com.huanhailiuxin.view:coolviewpager:1.0.0', //https://github.com/geftimov/android-viewpager-transformers viewpagerTransformers : 'com.eftimoff:android-viewpager-transformers:1.0.1@aar', //https://github.com/ogaclejapan/SmartTabLayout smartTab : 'com.ogaclejapan.smarttablayout:library:1.6.1@aar', /*camera*/ //https://github.com/Fotoapparat/Fotoapparat fotoapparat : 'io.fotoapparat:fotoapparat:2.5.0', //https://github.com/CameraKit/camerakit-android cameraKit : 'com.camerakit:camerakit:1.0.0-beta3.10', //need kotlin and kotlinx-coroutines-android camerakitJpegkit : 'com.camerakit:jpegkit:0.1.0', //https://github.com/natario1/CameraView cameraView : 'com.otaliastudios:cameraview:1.3.1', //picker about //https://github.com/wdullaer/MaterialDateTimePicker materialTimePicker : 'com.wdullaer:materialdatetimepicker:3.6.4', //https://github.com/gzu-liyujiang/AndroidPicker androidWheelPicker : "com.github.gzu-liyujiang.AndroidPicker:WheelPicker:1.5.6", //https://github.com/zyyoona7/WheelPicker, it don't support setting max or min date. wheelWiewPicker : "com.github.zyyoona7:wheelview:1.0.5", /*text view*/ //https://github.com/chenBingX/SuperTextView superTextView : 'com.github.chenBingX:SuperTextView:v3.1.4', //https://github.com/iwgang/CountdownView countdownView : 'com.github.iwgang:countdownview:2.1.3', /*shape, tag*/ //https://github.com/florent37/ShapeOfView, need android x shapeOfView : 'com.github.florent37:shapeofview:1.4.5', //https://github.com/whilu/AndroidTagView androidtagView : 'co.lujun:androidtagview:1.0.6', //https://github.com/duanhong169/DrawableToolbox drawableToolbox : "com.github.duanhong169:drawabletoolbox:1.0.5", /*recycler view about*/ //https://github.com/GcsSloop/pager-layoutmanager pagerlayoutmanager : 'com.gcssloop.recyclerview:pagerlayoutmanager:2.3.2@aar', //https://github.com/alibaba/vlayout vlayout : 'com.alibaba.android:vlayout:1.0.4@aar', //https://github.com/DingMouRen/LayoutManagerGroup layoutManagerGroup : 'com.github.DingMouRen:LayoutManagerGroup:f68c9712e5', //https://github.com/lsjwzh/RecyclerViewPager recyclerViewPager : 'com.github.lsjwzh.RecyclerViewPager:lib:v1.1.2', //system ui manager:https://github.com/DreaminginCodeZH/SystemUiHelper systemUiHelper : 'me.zhanghai.android.systemuihelper:library:1.0.0', //soft input method:https://github.com/yshrsmz/KeyboardVisibilityEvent keyboardvisibilityevent : 'net.yslibrary.keyboardvisibilityevent:keyboardvisibilityevent:2.0.0', ] def testLibraries = [ junit : "junit:junit:4.12", mockito: "org.mockito:mockito-core:1.10.19" ] def repository = new Repository() repository.androidLibraries = androidLibraries repository.kotlinLibraries = kotlinLibraries repository.thirdLibraries = thirdLibraries repository.debugLibraries = debugLibraries repository.uiLibraries = uiLibraries repository.testLibraries = testLibraries return repository }