【问题标题】:Is there a way to avoid to call dl.google.com and maven when build a flutter android project?有没有办法避免在构建颤振的 android 项目时调用 dl.google.com 和 maven?
【发布时间】:2021-12-26 23:54:37
【问题描述】:

我正在使用 gradle 5.6.2。实际上,这是一个颤振项目,我使用以下方法构建它:

flutter build apk

我的项目有 2 个 build.gradle 文件:

  android/
  ---- build.gragle
  ---- app/
       ---- build.gradle

我从父 build.gradle 中删除了 google()jcenter() 存储库,并配置了一个 nexus 存储库。我的 build.gradle 看起来像这样:

buildscript {
    ext.kotlin_version = '1.3.50'
    repositories {
        if (!hasProperty('NEXUS_CREDENTIALS_USR')) {
            ext.NEXUS_CREDENTIALS_USR = ''
        }
            
        if (!hasProperty('NEXUS_CREDENTIALS_PSW')) {
            ext.NEXUS_CREDENTIALS_PSW = ''
        }    
        maven {
            credentials  {
                username = "${NEXUS_CREDENTIALS_USR}"
                password = "${NEXUS_CREDENTIALS_PSW}"
            }
            url "https://somenexusrepo.com/repository/maven-google-android"
        }
        maven {
            credentials  {
                username = "${NEXUS_CREDENTIALS_USR}"
                password = "${NEXUS_CREDENTIALS_PSW}"
            }
            url "https://somenexusrepo.com/repository/maven-public"
        }
        maven {
            credentials  {
                username = "${NEXUS_CREDENTIALS_USR}"
                password = "${NEXUS_CREDENTIALS_PSW}"
            }
            url "https://somenexusrepo.com/repository/maven-snapshots"
        }
        maven {
            credentials  {
                username = "${NEXUS_CREDENTIALS_USR}"
                password = "${NEXUS_CREDENTIALS_PSW}"
            }
            url "https://somenexusrepo.com/repository/maven-group"
        }
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:3.5.0'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

rootProject.buildDir = '../build'

allprojects {
    repositories {
        if (!hasProperty('NEXUS_CREDENTIALS_USR')) {
            ext.NEXUS_CREDENTIALS_USR = ''
        }
            
        if (!hasProperty('NEXUS_CREDENTIALS_PSW')) {
            ext.NEXUS_CREDENTIALS_PSW = ''
        }    
        maven {
            credentials  {
                username = "${NEXUS_CREDENTIALS_USR}"
                password = "${NEXUS_CREDENTIALS_PSW}"
            }
            url "https://somenexusrepo.com/repository/maven-google-android"
        }
        maven {
            credentials  {
                username = "${NEXUS_CREDENTIALS_USR}"
                password = "${NEXUS_CREDENTIALS_PSW}"
            }
            url "https://somenexusrepo.com/repository/maven-public"
        }
        maven {
            credentials  {
                username = "${NEXUS_CREDENTIALS_USR}"
                password = "${NEXUS_CREDENTIALS_PSW}"
            }
            url "https://somenexusrepo.com/repository/maven-snapshots"
        }
        maven {
            credentials  {
                username = "${NEXUS_CREDENTIALS_USR}"
                password = "${NEXUS_CREDENTIALS_PSW}"
            }
            url "https://somenexusrepo.com/repository/maven-group"
        }
    }
}

subprojects {
    project.buildDir = "${rootProject.buildDir}/${project.name}"

    project.evaluationDependsOn(':app')
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

但是当我尝试构建项目时,它仍然会尝试从其他存储库中获取一些依赖项。我正在尝试从专用网络构建它,但我无法访问 dl.google.com 或 repo.maven.apache.org 存储库,这就是我收到此错误的原因:

 A problem occurred evaluating project ':app'.
[        ] > Could not resolve all artifacts for configuration 'classpath'.
[        ]    > Could not resolve com.android.tools.build:gradle:4.1.0.
[        ]      Required by:
[        ]          unspecified:unspecified:unspecified
[        ]       > Could not resolve com.android.tools.build:gradle:4.1.0.
[        ]          > Could not get resource 'https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle/4.1.0/gradle-4.1.0.pom'.
[        ]             > Could not GET 'https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle/4.1.0/gradle-4.1.0.pom'.
[        ]                > Connect to dl.google.com:443 [dl.google.com, dl.google.com] failed: No route to host (connect failed)
[        ]       > Could not resolve com.android.tools.build:gradle:4.1.0.
[        ]          > Could not get resource 'https://repo.maven.apache.org/maven2/com/android/tools/build/gradle/4.1.0/gradle-4.1.0.pom'.
[        ]             > Could not GET 'https://repo.maven.apache.org/maven2/com/android/tools/build/gradle/4.1.0/gradle-4.1.0.pom'.
[        ]                > Connect to repo.maven.apache.org:443 [repo.maven.apache.org, repo.maven.apache.org] failed: connect timed out

即使我尝试执行gradle build 命令,我也会收到同样的错误。

有没有办法避免使用这些存储库?

【问题讨论】:

  • 尝试flutter build clean 然后flutter build apk

标签: flutter gradle android-gradle-plugin build.gradle


【解决方案1】:

我替换了 flutter.gradle ($FLUTTER_ROOT/packages/flutter_tools/gradle/flutter.gradle) 文件中的存储库,现在 Flutter 正在自定义存储库中寻找包。

【讨论】:

    猜你喜欢
    • 2020-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-18
    • 2020-07-09
    • 2022-10-08
    • 2012-06-20
    相关资源
    最近更新 更多