Intellij Idea Run/Debug配置和Gradle任务中的SSH隧道

Vik*_*nov 8 java ssh intellij-idea gradle spring-boot

我们的Spring Boot(带Gradle)应用程序具有托管在云中的上游.因此,当我们需要从本地计算机与它们进行通信时,我们使用SSH隧道在本地测试应用程序.

因此,通常,如果我需要测试需要来自受限区域的服务器的东西,我会执行以下操作:
1.使用ssh -N myhostcmd控制台启动SSH隧道
2.使用Soring Boot Run/Debug配置从Intellij Idea运行应用程序.
3.完成后关闭隧道(在命令行窗口中按Ctrl + C).

我的问题:
- 我可以直接从IntelliJ Idea中执行这些步骤,设置一些启动隧道的Run/Debug配置,运行应用程序,并在应用程序停止后关闭它吗?
- 我可以在Gradle中设置相同的内容,为隧道创建一些任务并运行它:
./gradlew startTunnel bootRun

提前致谢.

ToY*_*nos 2

您可以尝试使用Gradle Spawn 插件,如此所述

定义这些任务(-v需要该选项来匹配身份验证成功字符串):

import com.wiredforcode.gradle.spawn.*

task startSSHTunnel(type: SpawnProcessTask) {
    command "ssh -N -v myhost"
    ready 'Authentication succeeded' // this is printed by the SSH session's debug trace when connection has been successful
}

task stopSSHTunnel(type: KillProcessTask)

bootRun.finalizedBy stopSSHTunnel
Run Code Online (Sandbox Code Playgroud)

然后运行它:

./gradlew startSSHTunnel bootRun
Run Code Online (Sandbox Code Playgroud)

也许你需要进行一些调整,但主要精神就在这里。