今天把一个去年没作完的项目翻出来作时,发现maven没法正常导入依赖。检查了一遍项目配置,没发现有什么问题。并且依赖在本地仓库存在。maven
随后发现报错:Failed to transfer file:*********. Return code is: 501 , ReasonPhrase:HTTPS Required. 这时候好像发现了什么重点————咱们须要将maven配置修改一下:ide
<!-- 中央仓库1 --> <mirror> <id>repo1</id> <mirrorOf>central</mirrorOf> <name>Human Readable Name for this Mirror.</name> <url>https://repo1.maven.org/maven2/</url> </mirror> <!-- 中央仓库2 --> <mirror> <id>repo2</id> <mirrorOf>central</mirrorOf> <name>Human Readable Name for this Mirror.</name> <url>https://repo2.maven.org/maven2/</url> </mirror>
随后发现能够正常导入依赖了。ui
在stackoverflow上查了下,发现有人也遇到了这个问题:this
Recently Maven build jobs running in Jenkins are failing with the below exception saying that they could not pull dependencies from Maven Central and should use HTTPS. I am not sure how to change the requests from HTTP to HTTPS. Could someone guide me on this matter?
回答以下:url
Effective January 15, 2020, The Central Repository no longer supports insecure communication over plain HTTP and requires that all requests to the repository are encrypted over HTTPS.
因此这个问题的根源就是maven中央仓库如今只支持HTTPS协议,咱们改一下就行。spa