Gradle常見問題解決

Could not get resource ‘https://jcenter.bintray.com’

在看Netflix conductor源碼時遇到的一個問題,記錄一下。
由於conductor不是使用常規的maven,而是使用Gradle作爲編譯工具,並且其jar包倉庫是jcenter,不是nexus或者mvnrepository。故而在編譯項目時遇到這個報錯(Stack Trace適當簡略):

Could not download commons-compress.jar (org.apache.commons:commons-compress:1.16)
      > Could not get resource 'https://jcenter.bintray.com/org/apache/commons/commons-compress/1.16/commons-compress-1.16.jar'.
         > Could not GET 'https://d29vzk4ow07wi7.cloudfront.net/commons-compress-1.16.jar'.

參考
找到項目的build.gradle文件的節點*.repositories

buildscript {
	repositories {
		// 註釋,並添加下面一行
        // jcenter()
        maven { url "http://jcenter.bintray.com" }        
    }
}
allprojects {
    repositories {
    	// 默認的jcenter是https協議的,也就是說把https換成http,遇到其他類似的問題,都可以這般嘗試
		// jcenter()
        maven { url "http://jcenter.bintray.com" }
    }
}

但是gradle-wrapper.properties文件不能修改爲httpshttp
distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip

Could not get resource ‘https://plugins.gradle.org/m2’

下載插件失敗:

org.gradle.api.resources.ResourceException: Could not get resource 'https://plugins.gradle.org/m2/org/apache/maven/maven-ant-tasks/2.1.3/maven-ant-tasks-2.1.3.jar'.
Caused by: org.gradle.internal.resource.transport.http.HttpRequestException: Could not GET 'https://d29vzk4ow07wi7.cloudfront.net/maven-ant-tasks-2.1.3.jar
Caused by: java.net.SocketException: Software caused connection abort: recv failed

解決方法參考
settings.gradle文件最頂部添加如下配置:

pluginManagement {
    repositories {
        maven {
            url 'http://maven.aliyun.com/repository/gradle-plugin'
        }
        gradlePluginPortal()
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章