【问题标题】:How to trigger the build.gradle and download the new dependency to gradle cache如何触发 build.gradle 并将新的依赖项下载到 gradle 缓存
【发布时间】:2020-06-27 10:51:13
【问题描述】:

我们有多个版本的依赖项 (aar) 由我们自己构建和发布。

我们希望使用 maven 存储库中的最新版本。

如果我已经有一个 gradle 脚本来获取它,如何下载最新的依赖版本 aar。

如何触发?

这是我尝试过的:

  1. Android Studio -> 将项目与 gradle 文件同步

没有得到4.0.2版本的aar。

  1. ./gradlew --recompile-scripts

将在不构建任何内容的情况下进行同步。但它在我使用的 5.1.1 中被删除。

Upgrading your build from Gradle 4.x to 5.0

(将您的构建从 Gradle 4.x 升级到 5.0)[docs.gradle.org/current/userguide/upgrading_version_4.html]

  1. ./gradlew --refresh-dependencies

不确定它是否会下载新的依赖项以及如何验证它。 要么不确定它是否等于gradle中的“Sync project with gradle files”。

由于我的网络不是很好,有没有办法只下载我没有的依赖项并保持我下载的依赖项不变?

这是我使用的:

moduleA/build.gradle

def dependencyVersion = '0.3.1'
apply from: "https://***/dependencyVersions/${dependencyVersion}/dependencyVersions-${dependencyVersion}.gradle"
import groovy.json.JsonSlurper

ext {
    mepMajorVersion = 0

    mepMinorVersion = 3

    isLocalDevMode = {
        def devMode = project.findProperty('dev.mode') ?: System.getenv('dev.mode')
        return "local" == devMode
    }

    getVersionCode = { projectGroupId, projectArtifactId ->
        def repoPath = projectGroupId.replace(".", "/")
        try {
            def jsonSlurper = new JsonSlurper()
            def url = "https://***/api/search/versions?repos=vdca-mobile-maven&g=${repoPath}&a=$projectArtifactId"
//            println "url $url"
            def versions = jsonSlurper.parseText(new URL(url).text)
//            println "$projectArtifactId  versions $versions"
            def latestVersion = 0
            versions.results.each { v ->
                try {
                    def version = v.version.split("-")[0].split("\\.")
                    def majorVersion = version[0].toInteger()
                    def minorVersion = version[1].toInteger()
                    def patchVersion = version[2].toInteger()
//                    println "majorVersion $majorVersion minorVersion $minorVersion patchVersion $patchVersion"
                    if (majorVersion == mepMajorVersion && minorVersion == mepMinorVersion && patchVersion > latestVersion)
                        latestVersion = patchVersion
                } catch (Exception e) {
                }
            }
//            println "$projectArtifactId latest version $latestVersion"

            return latestVersion + 1
        } catch (Exception e) {
            return 1
        }
    }

    getLatestVersion = { projectGroupId, projectArtifactId ->
        def repoPath = projectGroupId.replace(".", "/")
        try {
            def jsonSlurper = new JsonSlurper()
            def url = "https://artifactory.trusted.visa.com/api/search/versions?repos=vdca-mobile-maven&g=${repoPath}&a=$projectArtifactId"
//            println "url $url"
            def versions = jsonSlurper.parseText(new URL(url).text)
//            println "$projectArtifactId  versions $versions"
            def latestVersion = 0
            versions.results.each { v ->
                try {
                    def version = v.version.split("-")[0].split("\\.")
                    def majorVersion = version[0].toInteger()
                    def minorVersion = version[1].toInteger()
                    def patchVersion = version[2].toInteger()
//                println "majorVersion $majorVersion minorVersion $minorVersion patchVersion $patchVersion"
                    if (majorVersion == mepMajorVersion && minorVersion == mepMinorVersion && patchVersion > latestVersion)
                        latestVersion = patchVersion
                } catch (Exception e) {
                }
            }
//            println "$projectArtifactId latest version "+mepMajorVersion+"."+mepMinorVersion+"."+latestVersion

            return mepMajorVersion+"."+mepMinorVersion+"."+latestVersion
        } catch (Exception e) {
            println "$e"
            return ""
        }
    }

    // version number MAJOR.MINOR.PATCH
    getVersionName = { projectGroupId, projectArtifactId ->
        return "$mepMajorVersion.$mepMinorVersion." + getVersionCode(projectGroupId, projectArtifactId)
    }

    mepVersions = [
            // foundation
            analytics                 : getLatestVersion('com.visa.mobileEnablement.mobileFoundation', 'analytics'),
            dataProvider              : getLatestVersion('com.visa.mobileEnablement.mobileFoundation', 'dataProvider'),
            logger                    : getLatestVersion('com.visa.mobileEnablement.mobileFoundation', 'logger'),
            profilingService          : getLatestVersion('com.visa.mobileEnablement.mobileFoundation', 'profiler'),
            storage                   : '',
            // fmcore
            authenticationService     : getLatestVersion('com.visa.mobileEnablement', 'authenticationService'),
            coreService               : getLatestVersion('com.visa.mobileEnablement', 'coreService'),
            coreServiceTesting        : getLatestVersion('com.visa.mobileEnablement', 'coreServiceTesting'),
            cryptoClient              : getLatestVersion('com.visa.mobileEnablement', 'cryptoClient'),
            deviceManagementService   : getLatestVersion('com.visa.mobileEnablement', 'deviceManagementService'),
            featureGateway            : getLatestVersion('com.visa.mobileEnablement', 'featureGateway'),
            mockAuthenticationService : getLatestVersion('com.visa.mobileEnablement', 'mockAuthenticationService'),
            uiComponents              : getLatestVersion('com.visa.mobileEnablement', 'uiComponents'),
            utilities                 : getLatestVersion('com.visa.mobileEnablement', 'utilities'),
            // mep_login
            enrollFeature             : getLatestVersion('com.visa.mobileEnablement.featureModules', 'enrollFeature'),
            enrollService             : getLatestVersion('com.visa.mobileEnablement', 'enrollService'),
            loginFeature              : getLatestVersion('com.visa.mobileEnablement.featureModules', 'loginFeature'),
            // mep_3ds
            mep3dsFeature             : getLatestVersion('com.visa.mobileEnablement.featureModules', 'mep3dsFeature'),
            mep3dsService             : getLatestVersion('com.visa.mobileEnablement', 'mep3dsService'),
            mockMep3dsService         : getLatestVersion('com.visa.mobileEnablement', 'mockMep3dsService'),
    ]
    mepLibVersions = [
            androidTestVersion        : '1.0.1',
            androidxTestVersion       : '1.1.0',
            androidArchCompVersion    : '1.1.1',
            appCompatVersion          : '1.1.0',
            biometricVersion          : '1.0.0',
            buildToolsVersion         : "28.0.3",
            butterknifeCompilerVersion: '8.5.1',
            butterknifeVersion        : '8.5.1',
            caverockAndroidSvgVersion : '1.2.1',
            compileSdk                : 28,
            constraintLayout          : '1.1.3',
            daggerCompilerVersion     : '2.8',
            daggerProducersVersion    : '2.8',
            daggerVersion             : '2.8',
            espressoVersion           : '3.1.0',
            firebaseCoreVersion       : '16.0.9',
            gradlePluginVersion       : '3.4.1',
            gsonConverter             : '2.0.1',
            gsonVersion               : '2.8.2',
            httpClientAndroidVersion  : '4.3.5.1',
            jacocoVersion             : '0.8.4',
            javaxInjectVersion        : 1,
            junitVersion              : '4.12',
            jsonOrgVersion            : '20140107',
            jsr250Version             : '1.0',
            jsr305Version             : '1.3.9',
            kotlinVersion             : '1.3.50',
            kotlin_coroutines         : '1.3.3',
            materialVersion           : '1.1.0-rc02',
            minSdk                    : 23,
            mockitoVersion            : '1.10.19',
            mockkVersion              : '1.9.3',
            multiDex                  : '1.0.3',
            nineoldandroids           : '2.4.0',
            okioVersion               : '1.6.0',
            okHttpLegacyUrlConnVersion: '2.6.0',
            okHttpLegacyVersion       : '2.6.0',
            okHttpUrlConnVersion      : '3.10.0',
            okHttpVersion             : '3.10.0',
            openPojoVersion           : '0.8.3',
            picassoVersion            : '2.5.2',
            powerMockVersion          : '1.6.2',
            playServiceVersion        : '11.0.4',
            retrofitLegacyVersion     : '1.9.0',
            retrofitVersion           : '2.5.0',
            retrofitScalarsVersion    : '2.1.0',
            supportLib                : '28.0.0',
            tagManagerVersion         : '16.0.8',
            targetSdk                 : 28,
            testRunnerVersion         : '1.1.0',
            threatMetrixVersion       : '5.4-73',
            uiAutomatorVersion        : '2.1.2',
            viewpagerindicator        : '2.4.1',
            wiremockVersion           : '2.0.8-beta',
            commonsIoVersion          : '2.6',
            commonsCodecVersion       : '1.13',
    ]
}

我的问题:

  1. 有没有调试的方法可以调试dependency.gradle文件?

  2. 如何执行build.gradle下载最新的依赖?

相关问题 How can I force gradle to redownload dependencies?

【问题讨论】:

    标签: android android-studio gradle


    【解决方案1】:

    原来我也应该将dependencyVersion0.3.1更新为0.4.1,这忘了告诉我了。

    然后与 Android Studio 中的 gradle 文件同步。

    (我试过./gradlew --refresh-dependencies,它在日志中显示了最新的0.4.2版本的依赖,但Android Studio仍然显示旧的0.3.6版本的依赖。)

    不知道怎么知道原理?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-01
      • 2014-11-10
      • 2016-10-10
      • 1970-01-01
      • 1970-01-01
      • 2012-11-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多