IDEA 近程部署调试 Java 应用程序
[TOC]
根本概述
在工作中,咱们可能会遇到本地无奈连贯开发环境数据库等资源,但又想在本地间接开发、调试。
这时候就能通过 IDEA
的Run on ...
性能实现。
其原理是通过 SSH
连上近程服务器,部署利用到近程服务器后,本地连接上近程服务器部署的利用。
<font color=’red’>PS:这种操作形式比在近程服务器上搭建代理服务,安全性要高的多得多。</font>
筹备工作
近程服务器筹备
装置 JDK
[root@switch-sz-service-test ~]# yum install -y java-1.8.0-openjdk-devel.x86_64
# 能够看到 Java 的版本是 1.8
[root@switch-sz-service-test ~]# java -version
openjdk version "1.8.0_302"
OpenJDK Runtime Environment (build 1.8.0_302-b08)
OpenJDK 64-Bit Server VM (build 25.302-b08, mixed mode)
配置 JAVA_HOME
# 能够看到 JAVA_HOME 是 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.302.b08-0.el8_4.x86_64
[root@switch-sz-service-test ~]# find / -name java
/etc/pki/ca-trust/extracted/java
/etc/pki/java
/etc/alternatives/java
/etc/java
/var/lib/alternatives/java
/usr/bin/java
/usr/lib/java
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.302.b08-0.el8_4.x86_64/jre/bin/java
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.302.b08-0.el8_4.x86_64/bin/java
/usr/lib/jvm/java
/usr/share/bash-completion/completions/java
/usr/share/java
[root@switch-sz-service-test ~]# ll /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.302.b08-0.el8_4.x86_64
total 180
-rw-r--r-- 1 root root 1522 Jul 22 01:18 ASSEMBLY_EXCEPTION
drwxr-xr-x 2 root root 4096 Oct 4 00:29 bin
drwxr-xr-x 3 root root 132 Oct 4 00:29 include
drwxr-xr-x 4 root root 95 Oct 4 00:29 jre
drwxr-xr-x 3 root root 144 Oct 4 00:29 lib
-rw-r--r-- 1 root root 19274 Jul 22 01:18 LICENSE
drwxr-xr-x 2 root root 204 Oct 4 00:29 tapset
-rw-r--r-- 1 root root 155003 Jul 22 01:18 THIRD_PARTY_README
# 配置 JAVA_HOME
[root@switch-sz-service-test ~]# vim /etc/profile
# 在最初面增加上如下语句
JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.302.b08-0.el8_4.x86_64
export JAVA_HOME
# 能够看到曾经配置好了 JAVA_HOME 了
[root@switch-sz-service-test ~]# source /etc/profile
[root@switch-sz-service-test ~]# echo $JAVA_HOME
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.302.b08-0.el8_4.x86_64
[root@switch-sz-service-test ~]#
我的项目筹备
创立一个 SpringBoot 我的项目
应用 Spring Initializr 创立一个 SpringBoot 我的项目,参考我的项目:springboot-remote-deploy-demo
创立一个 Controller 类
package com.switchvov.springboot.remote.deploy.demo.controller;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author switch
* @since 2021/10/3
*/
@RestController
@RequestMapping("/hello")
@Slf4j
public class HelloController {@GetMapping("/{name}")
public String hello(@PathVariable("name") String name) {
String hello = "hello" + name;
log.info(hello);
return hello;
}
}
启动利用,验证后果
package com.switchvov.springboot.remote.deploy.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class SpringbootRemoteDeployDemoApplication {public static void main(String[] args) {SpringApplication.run(SpringbootRemoteDeployDemoApplication.class, args);
}
}
$ curl http://127.0.0.1:8080/hello/world
hello world%
PS:从如上步骤,能够看到曾经胜利在本地执行了,接下来就是要 <font color=’red’> 让他近程部署到服务器上,并且能够调试 </font>。
利用配置
批改利用配置
右键点击 SpringbootRemoteDeployDemoApplication
类旁边的启动符,弹出选项框,点击 Modify Run Configuration...
选项,弹出界面如下图
创立近程服务器
左键点击 Run on
选项框,弹出选项框,点击 SSH...
选项,弹出界面如下图
输出服务器地址 Host
,用户名Username
,点击Next
按钮,跳转界面如下图
输出明码 Password
(或者应用密钥),点击Next
跳转界面如下图
这一步,次要是验证是否能登录上服务器,以及服务器上根本环境是否装置好,点击 Next
跳转界面如下图
Successfully connected to root@120.78.218.44:22
> pwd
/root
Command finished with exit code 0
Checking rsync connection...
/usr/bin/rsync -n -e "ssh -p 22" root@120.78.218.44:
root@120.78.218.44's password:
dr-xr-x--- 190 2021/10/04 00:56:11 .
Process finished with exit code 0
Starting introspection for Java...
> echo ${SHELL}
/bin/bash
Command finished with exit code 0
> echo ${JAVA_HOME}
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.302.b08-0.el8_4.x86_64
Command finished with exit code 0
> java -version
openjdk version "1.8.0_302"
OpenJDK Runtime Environment (build 1.8.0_302-b08)
OpenJDK 64-Bit Server VM (build 25.302-b08, mixed mode)
Command finished with exit code 0
Introspection completed
能够看到我的项目部署门路 Project path on target
,JDK Home 门路JDK home path
以及 JDK 版本 JDK version
都曾经设置好了,点击 Finish
返回之前的界面
PS:能够本人批改部署门路之类的配置
保留利用配置
能够看到近程服务器曾经配置好了,点击 OK
按钮配置实现
验证后果
本地验证
点击 SpringbootRemoteDeployDemoApplication
的启动按钮,在启动日志中能够看到曾经部署到服务器上,同时也能看到本地端口 63006
映射到了服务器的 8080
端口。
$ curl http://localhost:63006/hello/world
hello world%
在本地拜访映射到服务器的端口63006
,也能失常拜访。
<font color=’red’>PS:能够启动,当然也能够进行调试。</font>
服务器验证
在近程服务器上,能够看到 springboot-remote-deploy-demo
曾经被部署在 /root
门路下了,且拜访 http://127.0.0.1:8080/hello/world
会正确返回hello world
。
[root@switch-sz-service-test ~]# pwd
/root
[root@switch-sz-service-test ~]# ll
total 4
drwxr-xr-x 38 root root 4096 Oct 4 01:08 springboot-remote-deploy-demo
[root@switch-sz-service-test ~]# curl http://127.0.0.1:8080/hello/world
hello world[root@switch-sz-service-test ~]#
参考文档
- Spring Initializr
-
springboot-remote-deploy-demo
分享并记录所学所见