最近在Jenkins中运行的Maven构建作业失败,出现以下异常,表示它们无法从Maven Central 中提取依赖项,应使用HTTPS。我不确定如何将请求从HTTP更改为HTTPS。有人可以指导我解决这个问题吗?
[错误] 无法解析的构建扩展:
插件org.apache.maven.wagon:wagon-ssh:2.1或其依赖项之一无法解析:
无法收集依赖项org.apache.maven.wagon:wagon-ssh:jar:2.1 ():
无法读取工件描述符org.apache.maven.wagon:wagon-ssh:jar:2.1:
无法org.apache.maven.wagon:wagon-ssh:pom:2.1从/向中央(http://repo.maven.apache. org/maven2):
无法传输文件:http://repo.maven.apache.org/maven2/org/apache/maven/wagon/wagon-ssh/2.1/wagon-ssh-2.1.pom。
返回代码为:501, ReasonPhrase:HTTPS Required. -> [Help 2]等待Jenkins完成收集
data[ERROR]
插件org.apache.maven.plugins:maven-clean-plugin:2.4.1或其依赖项之一无法解决:
无法读取工件描述符org.apache.maven.plugins:maven-clean-plugin:jar:2.4.1:
无法org.apache.maven.plugins:maven-clean-plugin:pom:2.4.1从/向中央传输工件(http://repo.maven.apache.org/maven2):
无法传输文件:http : //repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-clean-plugin/2.4.1/maven-clean-plugin-2.4.1.pom。
返回代码为:501 , ReasonPhrase:HTTPS Required. -> [Help 1]
对于maven 2它曾经是
M2_HOME/lib目录/ Maven的2.2.1-uber.jar:组织/阿帕奇/的Maven /项目/ POM-4.0.0.xml
但3.0.x没有一个jar.
Maven POM可以定义“存储库”。例如,
<repositories>
<repository>
<id>central</id>
<name>Central Repository</name>
<url>https://repo.maven.apache.org/maven2</url>
<layout>default</layout>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
Run Code Online (Sandbox Code Playgroud)
如果我不声明<snapshots>或怎么办<releases>?默认值是什么?它们似乎是可选的...
<releases>默认情况下在所有存储库上启用。我认为<snapshots>默认情况下是禁用的?那么上面的片段是多余的吗?
由于 Maven 中央存储库已移至 https,因此我无法构建 2.3.7 grails 项目。我在这篇文章中尝试了建议: Requests to http://repo1.maven.org/maven2/ return a 501 HTTPS Required status and a body
但是我仍然有一个问题,因为 maven repo 是在框架 jars ( 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
}
}
Run Code Online (Sandbox Code Playgroud)
该文件是只读的。
我该如何解决这个问题?由于多种原因,我无法将项目迁移到新的 Grails …