【问题标题】:gradle always use repo.maven.apache.org even if i point custom repositories即使我指向自定义存储库,gradle 始终使用 repo.maven.apache.org
【发布时间】:2019-10-17 20:55:44
【问题描述】:

从我的网络我无法访问https://repo.maven.apache.org/maven2 存储库,所以我必须指向像http://nexus.companyproxy.com:8099/nexus/content/groups/public 这样的代理 我的配置只包含这个

repositories { 
   maven("http://nexus.companyproxy.com:8099/nexus/content/groups/public") 
}  

但是当我使用 -debug 运行 gradle 时,我看到很多错误原因:

org.gradle.api.resources.ResourceException: Could not get resource 'https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-compiler-embeddable/1.3.41/kotlin-c...

在这个不成功的请求之后,它从正确的存储库(代理)下载依赖,但是为什么我不能避免这样的问题呢?

【问题讨论】:

  • 我不确定是否是语法:repositories { maven { url 'http://repo.mycompany.com/maven2' } } 这就是文档中使用的方式:docs.gradle.org/current/userguide/declaring_repositories.html
  • org.gradle.kotlin.dsl.RepositoryHandlerExtensions fun RepositoryHandler.maven(url: Any) = maven { it.setUrl(url) } 所以我的语法是正确的

标签: java maven gradle build.gradle gradle-kotlin-dsl


【解决方案1】:

你的问题很老,但我前几天也遇到了同样的问题,谷歌将我重定向到你的帖子。

在日志中我可以看到 Gradle 使用了我的本地工件,然后它切换到默认的远程存储库:

15:04:47  2022-02-17T15:04:47.572+0100 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Completing Build operation 'Download http://artifactory.mycompany.local/artifactory/maven/org/mockito/mockito-core/maven-metadata.xml'
15:04:47  2022-02-17T15:04:47.572+0100 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Download http://artifactory.mycompany.local/artifactory/maven/org/mockito/mockito-core/maven-metadata.xml' completed
15:04:47  2022-02-17T15:04:47.576+0100 [DEBUG] [org.gradle.api.internal.artifacts.repositories.maven.MavenMetadataLoader] parsing maven-metadata: org.gradle.internal.resource.local.DefaultLocallyAvailableExternalResource@5568cd26
15:04:47  2022-02-17T15:04:47.585+0100 [DEBUG] [org.gradle.internal.resource.transfer.DefaultCacheAwareExternalResourceAccessor] Constructing external resource: https://repo.maven.apache.org/maven2/org/mockito/mockito-core/maven-metadata.xml
...
15:06:24  2022-02-17T15:06:21.731+0100 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] Caused by: org.apache.http.conn.ConnectTimeoutException: Connect to repo.maven.apache.org:443 [repo.maven.apache.org/151.101.12.215] failed: connect timed out
...
15:06:24  2022-02-17T15:06:21.731+0100 [ERROR] [org.gradle.internal.buildevents.BuildResultLogger] BUILD FAILED in 2m 35s

我想 Gradle 会尝试列出所有存储库中的版本以定义最新版本“2.+”。但是无法连接到repo.maven.apache.org/maven2 存储库,因此在我的情况下构建失败。

我的解决方案是将版本从'2.+' 更改为build.gradle 文件中的固定版本,即:

    testCompile group: 'org.mockito', name: 'mockito-core', version: '2.+'

    testCompile group: 'org.mockito', name: 'mockito-core', version: '2.28.2'

【讨论】:

    猜你喜欢
    • 2014-05-14
    • 1970-01-01
    • 2014-11-15
    • 1970-01-01
    • 2018-02-09
    • 1970-01-01
    • 2016-09-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多