Spring Tool Suite中Maven项目pom.xml的xsi:schemaLocation报错求助
解决Maven项目pom.xml中xsi:schemaLocation的报错问题
刚上手Maven碰到这种schema验证报错太正常啦,我帮你捋捋几个最常见的原因和对应的解决办法,一步步来排查:
1. 网络问题导致xsd文件拉取失败
Maven需要从http://maven.apache.org/xsd/maven-4.0.0.xsd这个地址加载xsd文件来验证pom.xml的格式,如果你的网络连不上这个地址,就会触发报错。
- 解决方式:
- 先测试下能不能正常访问这个xsd地址,直接在浏览器打开看看能不能加载出来
- 如果是公司内网用了代理,得在Maven的
settings.xml里配置代理,示例代码如下:<settings> <proxies> <proxy> <id>company-proxy</id> <active>true</active> <protocol>http</protocol> <host>你的代理地址</host> <port>代理端口</port> <!-- 如果需要认证就加上下面两行 --> <!-- <username>代理账号</username> --> <!-- <password>代理密码</password> --> <nonProxyHosts>localhost|127.0.0.1|*.yourcompany.com</nonProxyHosts> </proxy> </proxies> </settings> - 要是网络实在搞不定,也可以手动下载xsd文件到本地,然后把xsi:schemaLocation改成本地路径,比如:
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 file:///C:/maven/xsd/maven-4.0.0.xsd"
2. pom.xml本身存在语法错误
你贴出来的pom里<version>标签只写了...,这明显是不完整的!Maven会因为这种语法错误,连带触发schema验证的报错提示。
- 解决方式:
- 给
<version>填上合法的版本号,比如常用的1.0-SNAPSHOT,完整标签应该是:<version>1.0-SNAPSHOT</version> - 顺便检查整个pom.xml有没有其他语法问题,比如标签没闭合、引号不配对、标签名拼写错误这些小细节。
- 给
3. IDE缓存搞的鬼
有时候IDE(不管是IntelliJ IDEA还是Eclipse)的缓存会抽风,明明pom是对的,却一直报红。
- 解决方式:
- IDEA用户:点击顶部菜单
File->Invalidate Caches...,选择Invalidate and Restart,重启后再看 - Eclipse用户:点击
Project->Clean...清理项目,然后右键项目选择Maven->Update Project...,勾选Force Update of Snapshots/Releases再更新
- IDEA用户:点击顶部菜单
4. Maven版本兼容问题(概率较低)
虽然4.0.0是非常通用的POM版本,但如果你的本地Maven版本太老,也可能出现不兼容的情况。
- 解决方式:
- 打开命令行执行
mvn -v查看本地Maven版本,建议升级到3.8.x及以上的稳定版本,兼容性更好
- 打开命令行执行
验证解决结果
改完之后,你可以在项目根目录打开命令行,执行mvn clean install,如果能顺利完成构建,说明问题就解决啦!
内容的提问来源于stack exchange,提问作者Himanshu Singh




