如何覆盖flutter的android项目依赖存储库

问题描述 投票:0回答:1

我正在尝试为我们的 flutter 应用程序设置一个 ci 用例,要求是使用 flutter 设置原始图像,并尝试像平常 ci 一样在图像中构建项目。 该映像无法访问互联网,并且必须从本地存储库获取依赖项。 我添加了 PUB_HOSTED_URL 环境变量,其中本地存储库的“https://localUrl”作为值,这使我能够从本地存储库获取 pub 包。

然而,android 依赖关系很棘手,这就是我陷入困境的地方!我尝试更改

distributionUrl
文件中的 gradle
android/gradle/wrapper/gradle-wrapper.properties
解决了下载 gradle 的问题。 我还尝试在
android/settings.gradle
android/build.gradle
文件中设置自定义存储库,如下所示:

settings.gradle:
pluginManagement {
    ...
    repositories {
        mavenCentral {url 'https://localRepo'}
        maven { url 'https://localRepo' }  
        google {url 'https://localRepo'}
        gradlePluginPortal{url 'https://localRepo'}
        jcenter{url 'https://localRepo'}
    }
}



build.gradle:
allprojects {
    repositories {
        mavenCentral {url 'https://localRepo'}
        maven { url 'https://localRepo' }  
        google {url 'https://localRepo'}
        gradlePluginPortal{url 'https://localRepo'}
        jcenter{url 'https://localRepo'}
    }
}

由于毫无进展,我按照 github_issue 中的说明进行操作,因为我的 flutter 版本是 3.24.3

flutter.gradle
没有
buildscript
以及相应的
google()
maven()
存储库,我认为它可能已迁移到
 flutter.groovy
因为它被用在
flutter.gradle
中并在第108行找到
buildscript
,也将
google()
maven()
flutter.groovy
更改为

maven { url 'https://localRepo' }
google {url 'https://localRepo'}

这是我面临的错误,这是因为我的图像无法访问互联网,应该从 localRepository 获取依赖项。

* What went wrong:
Execution failed for task ':gradle:compileGroovy'.
> Could not resolve all files for configuration ':gradle:compileClasspath'.
   > Could not find com.android.tools.build:gradle:7.3.0.
     Searched in the following locations:
       - https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle/7.3.0/gradle-7.3.0.pom
       - https://repo.maven.apache.org/maven2/com/android/tools/build/gradle/7.3.0/gradle-7.3.0.pom
     Required by:
         project :gradle

flutter.gradle 位于: 扑/包/flutter_tools/gradle 或者 $FLUTTER_HOME/packages/flutter_tools/gradle/flutter.gradle

flutter.groovy 位于: 扑/包/flutter_tools/gradle/src/main/groovy/flutter.groovy 或者 $FLUTTER_HOME/packages/flutter_tools/gradle/src/main/groovy/flutter.groovy

ps:由于图像尺寸较大,我宁愿不构建已包含 gradle 依赖项的图像。

提前谢谢您。

android flutter dart gradle devops
1个回答
0
投票

jcenter()
是无意义的,同样
url 'https://localRepo'
是无意义的。

只需转到 https://localRepo 并尝试在浏览器中列出它...

假设包裹在那里,

mavenLocal()
就是您所需要的。

© www.soinside.com 2019 - 2024. All rights reserved.