由于 Maven 中央存储库已移至 https,我无法构建 2.3.7 grails 项目。
我尝试了这篇文章的建议:对 http://repo1.maven.org/maven2/ 的请求返回 501 HTTPS 必需状态和正文
但是我仍然遇到问题,因为 Maven 存储库是在框架 jar 中编码的( grails-aether-2.3.7-sources.jar )
班级是org.codehaus.groovy.grails.resolve.maven.aether.config.RepositoriesConfinguration.groovy.
RemoteRepository mavenCentral(Closure configurer = null) {
final existing = repositories.find { ArtifactRepository ar -> ar.id == "mavenCentral" }
if (!existing) {
final repositoryBuilder = new RemoteRepository.Builder("mavenCentral", "default", "http://repo1.maven.org/maven2/")
configureRepository(repositoryBuilder, configurer)
final repository = repositoryBuilder.build()
repositories << repository
return repository
}
else {
return existing
}
}
该文件是只读的。
我该如何解决这个问题?由于多种原因,我无法将项目迁移到新的 Grails 版本。
这是我得到的错误。
16:14:10 + /opt/grails-2.3.7/bin/grails --stacktrace 干净 16:14:13 |
加载 Grails 2.3.7 16:14:17 |配置类路径 16:14:20 |错误
解决获取依赖项时出现的错误:无法读取工件
xalan:serializer:jar:2.7.1 的描述符(注意:堆栈跟踪已
过滤。使用 --verbose 查看整个跟踪。)16:14:20
org.eclipse.aether.resolution.ArtifactDescriptorException:失败
读取 xalan:serializer:jar:2.7.1 16:14:20 的工件描述符
org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.loadPom(DefaultArtifactDescriptorReader.java:335)
16:14:20 于
org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.readArtifactDescriptor(DefaultArtifactDescriptorReader.java:217)
16:14:20 于
org.eclipse.aether.internal.impl.DefaultDependencyCollector.process(DefaultDependencyCollector.java:466)
16:14:20 于
org.eclipse.aether.internal.impl.DefaultDependencyCollector.collectDependency(DefaultDependencyCollector.java:261)
16:14:20 于
org.eclipse.aether.internal.impl.DefaultRepositorySystem.collectDependency(DefaultRepositorySystem.java:317)
16:14:20 于
grails.util.BuildSettings.doResolve(BuildSettings.groovy:513) 16:14:20
在 grails.util.BuildSettings.doResolve(BuildSettings.groovy) 16:14:20
在
grails.util.BuildSettings$_getDefaultBuildDependency_closure17.doCall(BuildSettings.groovy:774)
16:14:20 于
grails.util.BuildSettings$_getDefaultBuildDependency_closure17.doCall(BuildSettings.groovy)
16:14:20 于
grails.util.BuildSettings.getDefaultBuildDependency(BuildSettings.groovy:768)
16:14:20 于
grails.util.BuildSettings.getBuildDependency(BuildSettings.groovy:673)
16:14:20 原因:
org.eclipse.aether.resolution.ArtifactResolutionException:无法
从/到 mavenCentral 传输工件 xalan:serializer:pom:2.7.1
(http://repo1.maven.org/maven2/):需要 HTTPS (501) 16:14:20 at
org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:460)
16:14:20 于
org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts(DefaultArtifactResolver.java:262)
16:14:20 于
org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifact(DefaultArtifactResolver.java:239)
16:14:20 于
org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.loadPom(DefaultArtifactDescriptorReader.java:320)
16:14:20 ... 10 更多 16:14:20 原因:
org.eclipse.aether.transfer.ArtifactTransferException:无法
从/到 mavenCentral 传输工件 xalan:serializer:pom:2.7.1
(http://repo1.maven.org/maven2/):需要 HTTPS (501) 16:14:20 at
org.eclipse.aether.connector.basic.ArtifactTransportListener.transferFailed(ArtifactTransportListener.java:43)
16:14:20 于
org.eclipse.aether.connector.basic.BasicRepositoryConnector$TaskRunner.run(BasicRepositoryConnector.java:342)
16:14:20 于
org.eclipse.aether.util.concurrency.RunnableErrorForwarder$1.run(RunnableErrorForwarder.java:67)
16:14:20 于
org.eclipse.aether.connector.basic.BasicRepositoryConnector$DirectExecutor.execute(BasicRepositoryConnector.java:649)
16:14:20 于
org.eclipse.aether.connector.basic.BasicRepositoryConnector.get(BasicRepositoryConnector.java:247)
16:14:20 于
org.eclipse.aether.internal.impl.DefaultArtifactResolver.performDownloads(DefaultArtifactResolver.java:536)
16:14:20 于
org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:437)
16:14:20 ... 13 更多 16:14:20 原因:
org.apache.http.client.HttpResponseException:需要 HTTPS (501)
16:14:20 于
org.eclipse.aether.transport.http.HttpTransporter.handleStatus(HttpTransporter.java:404)
16:14:20 于
org.eclipse.aether.transport.http.HttpTransporter.execute(HttpTransporter.java:298)
16:14:20 于
org.eclipse.aether.transport.http.HttpTransporter.implGet(HttpTransporter.java:250)
16:14:20 于
org.eclipse.aether.spi.connector.transport.AbstractTransporter.get(AbstractTransporter.java:59)
16:14:20 于
org.eclipse.aether.connector.basic.BasicRepositoryConnector$GetTaskRunner.runTask(BasicRepositoryConnector.java:418)
16:14:20 于
org.eclipse.aether.connector.basic.BasicRepositoryConnector$TaskRunner.run(BasicRepositoryConnector.java:337)
16:14:20 ... 18 更多
您必须注释掉存储库下的 mavenCentral() 并按照此处的建议添加相应的 https url:https://support.sonatype.com/hc/en-us/articles/360041287334
例子 :
repositories {
inherits true // Whether to inherit repository definitions from plugins
grailsPlugins()
grailsHome()
mavenLocal()
grailsCentral()
//comment following line to prevent use of default http url
// mavenCentral()
//add following https counterparts
mavenRepo 'https://repo1.maven.org/maven2/'
mavenRepo 'https://repo.maven.apache.org/maven2/'
//if by any chance you can't connect to https url use this insecure url
// mavenRepo 'http://insecure.repo1.maven.org/maven2/'
mavenRepo 'https://repo.spring.io/milestone'
}
我在 grails 2.3.11 和 java 1.7.0_242 上尝试过这个,它对我有用。希望这可以帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)