1.现象

在命令行使用如下命令启动一个spring boot项目时出现如下警告:

[WARNING] Some problems were encountered while building the effective settings
[WARNING] Unrecognised tag: 'blocked' (position: START_TAG seen ...</url>\r\n      <blocked>... @164:16)  @ C:\Users\sqs\.m2\settings.xml, line 164, column 16

项目启动没有问题,但是在控制台看到这样的告警对洁癖人士来说还是忍受不了了。
在这里插入图片描述

2.解决办法

警告内容就是说maven的settings文件中有一个无法识别的标签blocked。目前还不清楚是特定的3.6.3版本的maven会报这样的警告,还是因为用的是mvnw的缘故,按说即便是用的3.8.1版本以下的maven,遇见这个配置忽略即可,但不应该出现配置标签都识别不了(因为之前用的3.5.4版本的maven而不是用的maven wrapper,就不会报这样的警告)。
我目前的猜测是,低版本的maven用了高版本的settings文件。
实在没有精力深究了。有知道的大佬可以评论区分享一下。
粗暴直接的解决办法,无法识别就注释掉!!!

    <mirror>
      <id>maven-default-http-blocker</id>
      <mirrorOf>external:http:*</mirrorOf>
      <name>Pseudo repository to mirror external repositories initially using HTTP.</name>
      <url>http://0.0.0.0/</url>
      <!-- <blocked>true</blocked> -->
    </mirror>

但这并非一劳永逸,建议看完下面的内容再回过头决定是否确定要这样处理。

3.延伸知识(必看)

maven从3.8.1版本开始禁止所有HTTP协议的maven仓库,这个配置应该也就是从maven3.8.1版本开始有的。
因为使用HTTP协议下载依赖,可能会导致中间人攻击。这也是为什么很多人升级了maven版本后在构建之前的项目时出现不能拉取依赖的问题,因为一些人的使用的私有maven仓库很多事HTTP协议的而不是HTTPS协议。
所以如果你使用的是maven3.8.1及以上版本,根据自身需要是否要做2中的操作,这样会有被中间人攻击的风险。
当然,理论上,如果你使用的maven3.8.1及以上版本,应该不会报这个警告。
有点绕,希望我讲清楚了~

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐