ext.Dependencies = new DependenciesContainer() ext.Dependencies.with { _repositories = { repositories -> repositories.google { content { includeGroupByRegex "com\\.android.*" includeGroupByRegex "com\\.google.*" includeGroupByRegex "androidx\\..*" } } repositories.maven { url 'https://jitpack.io' content { includeGroup "com.github.UnifiedPush" } } repositories.mavenCentral { content { includeGroupByRegex "org\\.jetbrains.*" includeGroupByRegex "com\\.google.*" includeGroupByRegex "com\\.squareup.*" includeGroupByRegex "com\\.android.*" includeGroupByRegex "org\\.apache.*" includeGroupByRegex "org\\.json.*" includeGroupByRegex "org\\.codehaus.*" includeGroupByRegex "org\\.jdom.*" includeGroupByRegex "com\\.fasterxml.*" includeGroupByRegex "com\\.sun.*" includeGroupByRegex "org\\.ow2.*" includeGroupByRegex "org\\.eclipse.*" includeGroup "app.cash.turbine" includeGroup "de.undercouch" includeGroup "de.danielbechler" includeGroup "com.github.gundy" includeGroup "com.sun.activation" includeGroup "com.thoughtworks.qdox" includeGroup "com.annimon" includeGroup "com.github.javaparser" includeGroup "com.beust" includeGroup "org.bouncycastle" includeGroup "org.bitbucket.b_c" includeGroup "org.checkerframework" includeGroup "org.amshove.kluent" includeGroup "org.jvnet.staxex" includeGroup "org.glassfish" includeGroup "org.glassfish.jaxb" includeGroup "org.antlr" includeGroup "org.tensorflow" includeGroup "org.xerial" includeGroup "org.slf4j" includeGroup "org.freemarker" includeGroup "org.threeten" includeGroup "org.hamcrest" includeGroup "org.matrix.android" includeGroup "org.sonatype.oss" includeGroup "org.junit.jupiter" includeGroup "org.junit.platform" includeGroup "org.junit" includeGroup "org.junit.jupiter" includeGroup "org.jsoup" includeGroup "org.jacoco" includeGroup "org.testng" includeGroup "org.opentest4j" includeGroup "org.apiguardian" includeGroup "org.webjars" includeGroup "org.objenesis" includeGroup "commons-io" includeGroup "commons-logging" includeGroup "commons-codec" includeGroup "net.java.dev.jna" includeGroup "net.sf.jopt-simple" includeGroup "net.sf.kxml" includeGroup "net.bytebuddy" includeGroup "net.java" includeGroup "it.unimi.dsi" includeGroup "io.grpc" includeGroup "io.netty" includeGroup "io.opencensus" includeGroup "io.ktor" includeGroup "io.coil-kt" includeGroup "io.mockk" includeGroup "io.perfmark" includeGroup "info.picocli" includeGroup "us.fatehi" includeGroup "jakarta.xml.bind" includeGroup "jakarta.activation" includeGroup "javax.annotation" includeGroup "javax.inject" includeGroup "junit" includeGroup "jline" includeGroup "xerces" includeGroup "xml-apis" } } } def kotlinVer = "1.7.20" def sqldelightVer = "1.5.4" def composeVer = "1.2.1" def ktorVer = "2.1.3" google = new DependenciesContainer() google.with { androidGradlePlugin = "com.android.tools.build:gradle:7.3.1" androidxComposeUi = "androidx.compose.ui:ui:${composeVer}" androidxComposeFoundation = "androidx.compose.foundation:foundation:${composeVer}" androidxComposeMaterial = "androidx.compose.material3:material3:1.0.0-rc01" androidxComposeIconsExtended = "androidx.compose.material:material-icons-extended:${composeVer}" androidxActivityCompose = "androidx.activity:activity-compose:1.6.0" kotlinCompilerExtensionVersion = "1.3.2" firebaseCrashlyticsPlugin = "com.google.firebase:firebase-crashlytics-gradle:2.9.2" firebaseBom = "com.google.firebase:firebase-bom:31.0.1" jdkLibs = "com.android.tools:desugar_jdk_libs:1.1.5" } mavenCentral = new DependenciesContainer() mavenCentral.with { kotlinGradlePlugin = "org.jetbrains.kotlin:kotlin-gradle-plugin:${kotlinVer}" kotlinSerializationGradlePlugin = "org.jetbrains.kotlin:kotlin-serialization:${kotlinVer}" kotlinSerializationJson = "org.jetbrains.kotlinx:kotlinx-serialization-json:1.4.1" kotlinCoroutinesCore = "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4" kotlinCoroutinesTest = 'org.jetbrains.kotlinx:kotlinx-coroutines-test:1.6.4' kotlinTest = "org.jetbrains.kotlin:kotlin-test-junit:${kotlinVer}" sqldelightGradlePlugin = "com.squareup.sqldelight:gradle-plugin:${sqldelightVer}" sqldelightAndroid = "com.squareup.sqldelight:android-driver:${sqldelightVer}" sqldelightInMemory = "com.squareup.sqldelight:sqlite-driver:${sqldelightVer}" leakCanary = 'com.squareup.leakcanary:leakcanary-android:2.10' ktorAndroid = "io.ktor:ktor-client-android:${ktorVer}" ktorCore = "io.ktor:ktor-client-core:${ktorVer}" ktorSerialization = "io.ktor:ktor-client-serialization:${ktorVer}" ktorJson = "io.ktor:ktor-serialization-kotlinx-json:${ktorVer}" ktorLogging = "io.ktor:ktor-client-logging-jvm:${ktorVer}" ktorJava = "io.ktor:ktor-client-java:${ktorVer}" ktorContentNegotiation = "io.ktor:ktor-client-content-negotiation:${ktorVer}" coil = "io.coil-kt:coil-compose:2.2.2" accompanistSystemuicontroller = "com.google.accompanist:accompanist-systemuicontroller:0.27.0" junit = "junit:junit:4.13.2" kluent = "org.amshove.kluent:kluent:1.72" mockk = 'io.mockk:mockk:1.13.2' matrixOlm = "org.matrix.android:olm-sdk:3.2.12" } jitPack = new DependenciesContainer() jitPack.with { unifiedPush = "com.github.UnifiedPush:android-connector:2.0.1" } } class DependenciesContainer extends GroovyObjectSupport { private final Map storage = new HashMap(); @Override Object getProperty(String name) { return storage.get(name); } @Override void setProperty(String name, Object newValue) { storage.put(name, newValue); } }