IntelliJ中启动运行配置时自动停止同Spring应用的其他配置
解决IDEA中两个Spring启动配置互斥的问题
我理解你的需求:两个独立的Run Configuration(SpringApp_RunConf1和SpringApp_RunConf2),需要实现启动其中一个时自动停止另一个正在运行的实例。下面提供两种实用的方案,都是基于IntelliJ IDEA内置功能,不需要额外插件:
方案一:录制宏+前置任务(推荐,无需命令行)
这个方法利用IDEA的宏功能,把“停止指定配置”的操作录制成宏,然后添加到目标配置的启动前置任务中。
步骤1:录制停止SpringApp_RunConf2的宏
- 先让SpringApp_RunConf2处于运行状态(这样录制时能准确捕获停止动作)
- 顶部菜单栏点击
Edit→Macros→Start Macro Recording - 在IDEA底部的Run面板里,找到正在运行的SpringApp_RunConf2,点击右侧的红色停止按钮
- 回到菜单栏,点击
Edit→Macros→Stop Macro Recording,给宏命名为Stop_SpringApp_RunConf2并保存
步骤2:给SpringApp_RunConf1添加前置任务
- 点击右上角运行按钮旁的下拉菜单,选择
Edit Configurations... - 在弹出的窗口中选中
SpringApp_RunConf1,切换到Before launch标签页 - 点击
+号,选择Run Macro,然后选中刚才录制的Stop_SpringApp_RunConf2宏 - 点击
OK保存配置
步骤3:重复操作处理SpringApp_RunConf2
按照同样的流程,录制一个 Stop_SpringApp_RunConf1 的宏,然后添加到SpringApp_RunConf2的Before launch列表中。
这样以后启动任意一个配置时,IDEA都会先自动执行宏停止另一个配置的运行实例。
方案二:利用IDEA命令行工具(适合熟悉命令行的用户)
如果偏好命令行操作,可以通过IDEA的内置命令行工具来停止指定配置,同样添加到前置任务中。
步骤1:创建停止配置的外部工具
- 打开
File→Settings→Tools→External Tools,点击+号新建工具 - 在配置窗口中填写:
- Name:
Stop_SpringApp_RunConf2(自定义易识别的名称) - Program: 指向IDEA安装目录下的可执行文件:
- Windows:
<IDEA安装路径>\bin\idea.bat(路径含空格的话要加引号,比如"C:\Program Files\JetBrains\IntelliJ IDEA 2023.1\bin\idea.bat") - Mac/Linux:
<IDEA安装路径>/bin/idea.sh
- Windows:
- Arguments:
stop SpringApp_RunConf2(配置名称必须和你的Run Configuration完全一致,含空格的话加引号) - Working directory: 选择你的项目根目录
- Name:
- 点击
OK保存外部工具
步骤2:关联到启动前置任务
- 打开
Edit Configurations...,选中SpringApp_RunConf1,切换到Before launch - 点击
+号,选择Run External Tool,然后选中刚才创建的Stop_SpringApp_RunConf2 - 保存配置,同样给SpringApp_RunConf2添加停止SpringApp_RunConf1的外部工具前置任务
注意事项
- 宏录制时尽量只做停止目标配置的动作,避免多余操作影响宏的执行效果
- 命令行方案中,务必保证IDEA安装路径填写正确,否则工具无法正常调用
- 如果你的配置名称有特殊字符或空格,无论是宏还是命令行参数里都要对应处理(比如加引号)
内容的提问来源于stack exchange,提问作者Matjaz
相关产品推荐
相关产品推荐

