V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
honmaple
V2EX  ›  问与答

maven 到底该怎么设置代理?

  •  
  •   honmaple · 227 天前 · 724 次点击
    这是一个创建于 227 天前的主题,其中的信息可能已经有所发展或是发生改变。

    在使用 flutter run -v 时经常遇到

    '/Users/XXX/.pub-cache/hosted/pub.flutter-io.cn/flutter_plugin_android_lifecycle-2.0.17/android/build.gradle'.
    [        ] Downloading
    https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-core-jvm/1.4.1/kotlinx-coroutines-core-jvm-1.4.1.jar to
    /Users/XXX/.gradle/.tmp/gradle_download7829943129109247924bin
    

    真的好烦,每次遇到都是手动修改 build.gradle 文件,添加

    maven { url 'https://mirrors.cloud.tencent.com/nexus/repository/maven-public/' }
    

    终端也是设置了代理,不管是 wget https://repo.maven.apache.org/xxx 还是 curl https://repo.maven.apache.org/xxx 都能正常执行,但使用 flutter run 就是不能正常下载

    按照它的提示将文件手动下载到 /Users/XXX/.gradle/.tmp/gradle_download7829943129109247924bin 还是不行

    按照网上说的,复制一份 settings.xml$HOME/.m2/,不管是添加代理

      <proxies>
        <proxy>
          <id>http-proxy</id>
          <active>true</active>
          <protocol>http</protocol>
          <host>127.0.0.1</host>
          <port>1086</port>
        </proxy>
        <proxy>
          <id>https-proxy</id>
          <active>true</active>
          <protocol>https</protocol>
          <host>127.0.0.1</host>
          <port>1086</port>
        </proxy>
    <proxies>
    

    还是添加镜像

        <mirror>
          <id>nexus-tencentyun</id>
          <mirrorOf>*</mirrorOf>
          <name>Nexus tencentyun</name>
          <url>https://mirrors.cloud.tencent.com/nexus/repository/maven-public/</url>
        </mirror>
    

    还是不行

    搞得现在想自己搭一个镜像站,然后改 DNS 了,有大佬能帮忙看一下吗

    4 条回复    2024-04-11 12:05:55 +08:00
    saka0609
        1
    saka0609  
       227 天前
    我不太懂 flutter 的构建过程,我建议你可以看下 flutter run 的时候会不会取 http_proxy/https_proxy 这个环境变量.同时建议排查下 settings.xml 究竟有没有被 flutter run 正确使用,很有可能就没走你的配置文件。
    最后,搭镜像站是正确的,可以加速你的构建,我现在就是这么做的。
    lostberryzz
        2
    lostberryzz  
       227 天前
    如果只是本地开发设置的话,建议开代理的增强模式
    Ayanokouji
        3
    Ayanokouji  
       226 天前
    这不是 maven 的问题吧,应该是 gradle 的问题,可以参考这个方式尝试一下
    https://gist.github.com/bennyhuo/af7c43cc4831661193605e124f539942
    ysc3839
        4
    ysc3839  
       226 天前 via Android
    根据“gradle_download”这个关键字搜了下 gradle 的代码,从 DownloadAction.java 一直找到 HttpClientHelper.java ,发现最终调用的是 org.apache.http.impl.client.HttpClientBuilder ,搜索了一下,似乎 Apache 这个 http 库默认就不会使用系统代理,需要主动调用 .useSystemProperties() 才会使用。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1211 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 19ms · UTC 18:25 · PVG 02:25 · LAX 10:25 · JFK 13:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.