maven - 解决获取依赖项的错误:无法读取 - org.apache.http.client.HttpResponseException 的工件描述符:永久重定向 (308)
问题描述
我正在尝试在本地运行一个遗留系统(使用Grails 2.3.7和JDK 7)进行开发,直到现在它仍然像往常一样工作。
我遇到了另一个错误,我解决了删除文件夹.m2
和.grails
在家中的问题。之后,一些依赖项返回以下错误:
完整的日志在这里。
Error |
Resolve error obtaining dependencies: Failed to read artifact descriptor for org.grails.plugins:tomcat:zip:7.0.52.1
Error |
Resolve error obtaining dependencies: Failed to read artifact descriptor for org.grails.plugins:scaffolding:zip:2.0.2
Caused by: org.apache.http.client.HttpResponseException: Permanent Redirect (308)
at org.eclipse.aether.transport.http.HttpTransporter.handleStatus(HttpTransporter.java:404)
at org.eclipse.aether.transport.http.HttpTransporter.execute(HttpTransporter.java:298)
at org.eclipse.aether.transport.http.HttpTransporter.implGet(HttpTransporter.java:250)
at org.eclipse.aether.spi.connector.transport.AbstractTransporter.get(AbstractTransporter.java:59)
at org.eclipse.aether.connector.basic.BasicRepositoryConnector$GetTaskRunner.runTask(BasicRepositoryConnector.java:418)
at org.eclipse.aether.connector.basic.BasicRepositoryConnector$TaskRunner.run(BasicRepositoryConnector.java:337)
... 60 more
可能我遗漏了一些东西,但插件似乎在repo.grails.org 存储库的同一个地方。
我要问的是如何解决这个问题,所以如果可能的话,我可以解决这个问题。
目前,我通过复制我的同事.m2
和.grails
文件夹部分解决了该错误,但是当我更改某些依赖项时,BuildConfid.groovy
此错误再次出现。我的同事还删除了主文件夹中的.grails
and .m2
,并且发生了同样的错误。
BuildConfig.groovy:
grails.servlet.version = "3.0" // Change depending on target container compliance (2.5 or 3.0)
grails.project.class.dir = "target/classes"
grails.project.test.class.dir = "target/test-classes"
grails.project.test.reports.dir = "target/test-reports"
grails.project.work.dir = "target/work"
grails.project.target.level = 1.6
grails.project.source.level = 1.6
//grails.project.war.file = "target/${appName}-${appVersion}.war"
grails.project.dependency.resolver = "maven" // or ivy
grails.project.dependency.resolution = {
// inherit Grails' default dependencies
inherits("global") {
// specify dependency exclusions here; for example, uncomment this to disable ehcache:
// excludes 'ehcache'
}
log "debug" // log level of Ivy resolver, either 'error', 'warn', 'info', 'debug' or 'verbose'
checksums true // Whether to verify checksums on resolve
legacyResolve false
repositories {
inherits true // Whether to inherit repository definitions from plugins
grailsPlugins()
grailsHome()
mavenLocal()
grailsCentral()
// mavenCentral()
// mavenRepo "http://repository.codehaus.org"
mavenRepo "http://download.java.net/maven/2/"
// mavenRepo "http://repository.jboss.com/maven2/"
mavenRepo "http://download.java.net/maven/2/"
mavenRepo "http://mavensync.zkoss.org/maven2"
mavenRepo "http://insecure.repo1.maven.org/maven2/"
}
dependencies {
compile "net.sf.ehcache:ehcache-core:2.4.6"
}
plugins {
build ":tomcat:7.0.47"
compile ':cache:1.1.1'
runtime ":jquery:1.10.2.2"
runtime ":resources:1.2.1"
compile ":rest-client-builder:2.1.1"
}
}
grails.server.port.http = 8082
解决方案
您的存储库现在需要使用 https。试试下面的这些例子:
repositories {
mavenRepo "https://repo.grails.org/grails/core"
mavenRepo "https://repo.grails.org/grails/plugins"
我还必须使用 Java 8 来下载它们。由于 2.3.7 不支持 Java 8,您可以将 grails 升级到支持 Java 8 的 2.4.x 或 2.5.x。或者您也可以在使用 Java 7 尝试在 Java 7 中启用 TLS 1.2 时尝试使用 TLS 1.2:
java -Djdk.tls.client.protocols=TLSv1.2
推荐阅读
- javascript - 如何将变量从 Node.js 文件传递到 script.js 文件
- javascript - 如何在 Blazor 中打开 JS 文件?
- fortran - 在 Fortran 中调用 StdCall 子例程
- c++ - C++ 多索引映射
- rxjs - RXJS,计算完成一个 observable 需要多长时间
- python - 使用 matplotlib 用颜色可视化一维数据
- python - 使用 Twitter API 提取和计算股票代码
- mysql - 从 MySQL 的多个模式中加载多个表到 R,并合并所有表
- docker - kubernetes.client.exceptions.ApiException: (0) 原因:握手状态 500 内部服务器错误
- ios - 在某些情况下,CLLocation 的 HorizontalAccuracy 是否具有无穷大的价值?