问题描述:
IDEA中使用maven的打包命令install来对项目打包,出现了这个错误。
org.yaml.snakeyaml.error.YAMLException: java.nio.charset.MalformedInputException: Input length = 1
问题分析:
上网搜了很多信息,都是说是yml编码不一致问题,因为笔者使用的是nacos,nacos中的yml文件默认编码是UTF-8,所以笔者就检查了项目里的文件发现都是UTF-8,也没有问题,显然这个解决方案不适用。然后发现该问题的导致是因为Test命令所引起的。这里需要说下install命令的执行是包含Test命令的,所以可以认为这个问题是Test命令导致的。
问题解决:
skip项目中的Test命令,跳过Test阶段,直接进行编译和打包,然后发现成功了。所以可以确定这个问题的导致是test包下面的文件造成,但是笔者又去检查了这些测试文件的编码也都是UTF-8还是没有问题。最后还是不清楚导致该问题的根本原因,只是在表象上解决了他,通过跳过Test命令来实现了正常的编译打包。需要说下的是:跳过Test对编译和打包不会有任何影响,Test命令仅仅是执行test包下面的文件,对实际运行项目时不构成任何影响。