我有一些远程主机,我想在其上运行 Spring 应用程序,该应用程序位于本地主机上,即 我想从本地机器获取源代码并在能够调试到本地 IDE 的远程机器上运行它。不知何故,大公司做调试(痕迹是一样的),我不认为他们员工的机器有足够的计算能力。我想知道它是怎么做到的?
PS我假设您可以创建两个存储库,一个用于销售,另一个用于调试,即 当您需要检查某些东西时,您承诺调试萝卜,詹金斯在远程机器上,它会看到它,吸收更改,启动应用程序,我只是通过 IDE 连接,但它看起来有点拐杖。
我有一些远程主机,我想在其上运行 Spring 应用程序,该应用程序位于本地主机上,即 我想从本地机器获取源代码并在能够调试到本地 IDE 的远程机器上运行它。不知何故,大公司做调试(痕迹是一样的),我不认为他们员工的机器有足够的计算能力。我想知道它是怎么做到的?
PS我假设您可以创建两个存储库,一个用于销售,另一个用于调试,即 当您需要检查某些东西时,您承诺调试萝卜,詹金斯在远程机器上,它会看到它,吸收更改,启动应用程序,我只是通过 IDE 连接,但它看起来有点拐杖。
这并不难做到,但您需要记住,用于与 IDE 和 JVM 交互的 JPDA 协议对网络操作的优化很差(至少对于 java 8 及以下版本)并且调试本身会工作非常缓慢。
假设我们在本地拥有它并且在我们拥有 unix 的服务器上,这就是它的完成方式。
集会
当然,最简单的方法是使用 gradle 或 maven 并构建 uberjar。IDE 始终可以选择运行 gradle 或 maven 构建。
复制
在这里您可以使用
scp,ftp或sftp. 这将是一个这样的命令(假设配置了密钥身份验证):同样,在 IDE 中,可以以常规方式运行命令或脚本。在 IntelliJ 中:
发射
在这里,最简单的方法是通过 ssh 运行命令,同时创建一个 ssh 隧道:
当然,还有几个问题需要解决:
java。java,而且运行更复杂的脚本。调试
在 IDE 中,选择启动选项
Remote Debug并指定连接到本地主机。通过 ssh,将与远程主机建立连接。