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 -versionopenjdk 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_64total 180-rw-r--r-- 1 root root 1522 Jul 22 01:18 ASSEMBLY_EXCEPTIONdrwxr-xr-x 2 root root 4096 Oct 4 00:29 bindrwxr-xr-x 3 root root 132 Oct 4 00:29 includedrwxr-xr-x 4 root root 95 Oct 4 00:29 jredrwxr-xr-x 3 root root 144 Oct 4 00:29 lib-rw-r--r-- 1 root root 19274 Jul 22 01:18 LICENSEdrwxr-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_64export 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")@Slf4jpublic 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;@SpringBootApplicationpublic class SpringbootRemoteDeployDemoApplication { public static void main(String[] args) { SpringApplication.run(SpringbootRemoteDeployDemoApplication.class, args); }}
$ curl http://127.0.0.1:8080/hello/worldhello 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/rootCommand finished with exit code 0Checking 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 0Starting introspection for Java...> echo ${SHELL}/bin/bashCommand 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_64Command finished with exit code 0> java -versionopenjdk 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 0Introspection completed
能够看到我的项目部署门路Project path on target
,JDK Home门路JDK home path
以及JDK版本JDK version
都曾经设置好了,点击Finish
返回之前的界面
PS:能够本人批改部署门路之类的配置
保留利用配置
能够看到近程服务器曾经配置好了,点击OK
按钮配置实现
验证后果
本地验证
点击SpringbootRemoteDeployDemoApplication
的启动按钮,在启动日志中能够看到曾经部署到服务器上,同时也能看到本地端口63006
映射到了服务器的8080
端口。
$ curl http://localhost:63006/hello/worldhello 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 ~]# lltotal 4drwxr-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/worldhello world[root@switch-sz-service-test ~]#
参考文档
- Spring Initializr
springboot-remote-deploy-demo
分享并记录所学所见