前言:看到这篇文章,说明你是个好奇心很强的人。这个问题其实很容易解决,但是它发生的原因却让人无法理解。本篇文章就带你解开这个疑惑。如果有用,可以点赞支持,谢谢。
一、问题发生
我是在使用IDEA创建Maven项目时偶然出现的问题,当然,其他场景也有可能出现这种问题。
二、问题原因
参考IDEA官方文档
If an external process changes a file that was opened and unsaved in IntelliJ IDEA, it results in two conflicting versions of the file.
如果一个外部程序修改了一个在IDEA中打开并且尚未保存的文件,这会导致了该文件在IDEA中打开的(in memory)版本和在本地系统磁盘(on disk)版本内容不一致。
针对我这个场景来说,就是在mavne软件工具创建项目的过程中,IDEA先打开了pom.xml文件,然而,mavne软件工具对pom.xml的操作还没有完成,还在继续给pom.xml文件添加内容。导致在IDEA中打开的文件内容和在本地磁盘上的文件(同一个文件)内容不一致了。
应该可以理解了,在简单点说,有一个文件,你打开了,正在查看。这时其他人也打开了该文件,并进行了修改,然后保存。这时系统提醒你,此文件已经变更(也就是在内存和在磁盘上的内容不一致了 ),你选择不变更,即文件的memory版本,选择加载变更内容,就是文件的disk版本。
三、问题解决
对于使用mavne创建项目的场景,直接选择默认选项:Load File System Changes即可。
- 查看文件的不同
- 选择合适的版本
四、 IDEA简介(了解内容,可忽略)
IDEA 全称 IntelliJ IDEA,是java编程语言开发的集成环境。IntelliJ在业界被公认为最好的java开发工具,尤其在智能代码助手、代码自动提示、重构、JavaEE支持、各类版本工具(git、svn等)、JUnit、CVS整合、代码分析、 创新的GUI设计等方面的功能可以说是超常的。IDEA是JetBrains公司的产品,这家公司总部位于捷克共和国的首都布拉格,开发人员以严谨著称的东欧程序员为主。它的旗舰版本还支持HTML,CSS,PHP,MySQL,Python等。免费版只支持Java,Kotlin等少数语言。
参考IDEA官方文档:File Cache Conflict