logo头像
Snippet 博客主题

记录一次Maven中配置文件尾回车换行引发的问题

问题描述

今天打开IDEA加载项目时,发现一个很诡异的问题:项目依赖及代码没任何问题,Maven依赖检测红色波浪线依旧存在。虽说项目依旧能跑起来不影响开发,但是maven命令操作用不了。

遇到问题后,我大吃一惊。昨天看项目还好好的,今天就报出某个项目一个依赖包找不到。可实际上。该依赖包在本地库是存在的。于是,我删掉了依赖包,重新远程仓库下载。

私服和中央仓库切换好几次,重新下载的依赖包都是完整没问题的。同样Maven的Clean或Install搭配使用多次,这让我更加郁闷,寻找着解决方案。

问题排查与解决

解决一

在项目中的pom.xml文件里把红色波浪线的依赖线注释掉,然后重新加载之后,就不会出现。

然后撤销注释,然后加载就OK了,网上上说这是IDEA开发工具的BUG,这谁晓得,先这样干吧。

解决二

解决一虽然解决了依赖找不到红色波浪线问题,但还是预留一些问题,那就是Maven的基本命令操作用不了。比如我使用了mvn clean进行操作,控制台则报出一段日志:

1
2
3
4
5
D:\applications\develop\JDK8\bin\java.exe -Dmaven.multiModuleProjectDirectory=E:\work\code\cashloan-api -Dmaven.home=D:\applications\develop\apache-maven-3.6.1 -Dclassworlds.conf=D:\applications\develop\apache-maven-3.6.1\bin\m2.conf "-javaagent:D:\applications\develop\IntelliJ IDEA 2019.1.3\lib\idea_rt.jar=57134:D:\applications\develop\IntelliJ IDEA 2019.1.3\bin" -Dfile.encoding=UTF-8 -classpath D:\applications\develop\apache-maven-3.6.1\boot\plexus-classworlds-2.6.0.jar org.codehaus.classworlds.Launcher -Didea.version2019.1.3 -s D:\applications\develop\apache-maven-3.6.1\conf\settings.xml -Dmaven.repo.local=D:\applications\develop\apache-maven-3.6.1\repo install
[ERROR] Error executing Maven.
[ERROR] 2 problems were encountered while building the effective settings
[FATAL] Non-parseable settings D:\applications\develop\apache-maven-3.6.1\conf\settings.xml: in epilog non whitespace content is not allowed but got j (position: END_TAG seen ...</settings>\n\nj... @300:2) @ D:\applications\develop\apache-maven-3.6.1\conf\settings.xml, line 300, column 2
[FATAL] Non-parseable settings D:\applications\develop\apache-maven-3.6.1\conf\settings.xml: in epilog non whitespace content is not allowed but got j (position: END_TAG seen ...</settings>\n\nj... @300:2) @ D:\applications\develop\apache-maven-3.6.1\conf\settings.xml, line 300, column 2

通过日志我觉得Maven的配置文件settings.xml有问题,第300行第2列有疑惑。

我打开settings.xmls文件,没有300行,查看好像并没有什么问题,但是仔细阅读日志END_TAG seen …\n\nj… @300:2,这个让我有所启示,猜测是换行的问题。

clean后的报错日志

What?xml文件尾不能有回车换行,我不信这个邪,我就去试试。

试了以后,才知道真的是这个问题。该死,想了一下,自己今天早上改动过配置文件,可能在保存之前敲了回车,真是该死!!!

总结

有坑不重要,重要的是如何去填坑。

支付宝打赏 微信打赏

请作者喝杯咖啡吧