找回IDEA调试时的Stop and Rerun提示框
问题描述
使用IDEA来调试SpringBoot应用时,程序运行中我们修改一些代码,然后需要重启应用查看效果,在这种场景下每次点击Debug图标(也就是那个绿色的小虫子按钮)重启服务时,会弹出一个提示框,提示你是否要停止当前的Web服务器运行,然后重新启动它。
这很好理解,不像一个main方法,Web应用通常都会监听一个固定的端口,比如8080,那么多次启动,必然会因为端口已绑定而失败。
为了操作,我们可以勾选那个“Do not show this dialog in the future”复选框来记住你的选择,这样以后只要点击Debug按钮就会自动停止应用并启动。
问题来了,那怎么恢复这个弹框呢?我找遍了IDEA上所有的设置项都没有找到这个功能,也尝试在不同的搜索引擎以及IDEA文档上找,但都查不到答案。
纠结这个问题,可能有部分强迫症的原因,但是真正困扰我的是那种一时需要担心因为误操作,但是无法纠正的“不安全感”。我是通过GUI让软件记住了我的选择,但是却不能再通过GUI将它修改回去。
一个偶然的机会,我发现当启动一个新的项目时,点击Debug按钮还是会弹出这个窗口的,这个现象说明了勾选“Do not show this dialog in the future”复选框的操作,只是作用于当前的项目,并不是全局的设置。

问题定位
既然是项目级别的设置,就需要到项目目录中去找,在项目根目下有一个.idea目录,根据文件名推断workspace这个文件它可能就是,于是对比了两个不同的项目的.idea目录下的workspace文件后发现,没有弹窗的那个项目,多出一个restartRequiresConfirmation
属性,这个属性名直译成“重启需要确认”,而值为false,也正说明是不需要确认的意思。

定位路径
workspace.xml中根元素project下找到一个name属性为PropertiesComponent的component元素
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| <component name="PropertiesComponent"> <property name="DatabaseDriversLRU" value="mysql" /> <property name="ExpandSpringBootJavaOptionsPanel" value="true" /> <property name="ExpandSpringBootSpringBootSettingsPanel" value="false" /> <property name="Git.Branch.Popup.ShowAllRemotes" value="true" /> <property name="RequestMappingsPanelOrder0" value="0" /> <property name="RequestMappingsPanelOrder1" value="1" /> <property name="RequestMappingsPanelWidth0" value="75" /> <property name="RequestMappingsPanelWidth1" value="75" /> <property name="RunOnceActivity.OpenProjectViewOnStart" value="true" /> <property name="WebServerToolWindowFactoryState" value="false" /> <property name="aspect.path.notification.shown" value="true" /> <property name="com.intellij.ide.scratch.LRUPopupBuilder$1/New Scratch File" value="MySQL JAVA GitIgnore" /> <property name="dart.analysis.tool.window.visible" value="false" /> <property name="extract.method.default.visibility" value="private" /> <property name="full.screen.before.presentation.mode" value="false" /> <property name="last_opened_file_path" value="$PROJECT_DIR$/server/src/main/java/com/cnpc/cmp/worksheet/util" /> <property name="restartRequiresConfirmation" value="false" /> <property name="settings.editor.selected.configurable" value="tasks.timeTracking" /> <property name="show.unlinked.gradle.project.popup" value="true" /> </component>
|
问题修复
删除掉这行,重启IDEA