IDEA远程开发

IDEA远程开发

前期准备

IDEA的远程开发是在本地去操昨远程服务器上的代码,所以我们先需要准备一台服务器,在此我使用vmware虚拟出ubuntu-20.04.6的Server版本,以便后面演示。

Ubuntu的Java环境配置

  1. JDK8
shell 复制代码
sudo apt install openjdk-8-jdk
  1. maven
shell 复制代码
sudo apt install maven

服务器Java环境准备好了,就开始IDEA的远程开发了。

远程部署

第一种远程开发的方式是通过网络将程序部署到远程服务器上,编码工作还是在本地进行,只不过我们是在本地编写代码,然后我们将本地的代码文件定期的同步到服务器上去,再使用本地的IDEA远程操作服务器上的代码完成部署和运行。远程开发主要分为 6六个阶段:编码、文件同步、运行、编译构建、部署、调试。接下来我们创建一个简单的springboot项目,来演示上述操作。

1. 编码

我们的创建的springboot项目仅提供一个接口,用于测试服务是否正常访问,代码如下:

java 复制代码
@RestController("/")
public class HelloController {
    @GetMapping("/hello")
    public String getHello(){
        return "Hello World";
    }
}

2. 文件同步

  • 点击idea的Tools==>Development==>Configuration.
  1. 点击+选择SFTP
  • 为该服务起个名称

  • 填写服务器的基本信息如:ip,用户名以及密码

  • 将本地的项目文件路径和远程服务器上的某一路径进行映射

  • 将本地的代码同步到远程服务器

  • 验证本地代码是否同步完毕

到此,你在本地编写的代码都会自动同步到服务器上了。

3. 运行项目

在idea中创建出一个可以连接远程服务器的终端

使用cd命令进入项目代码

输入mvn spring-boot:run运行项目

she 复制代码
mvn spring-boot:run

然后,能够看到项目运行成功

使用浏览器进行访问该接口

浏览器显示了Hello Wolrd则表示我们已经正常的访问到服务器上运行的项目了

4. 构建项目

使用maven将项目进行打包

she 复制代码
mvn package

看到一下输出,表示打包成功

5. 部署

在服务器上已经将项目打成了jar包,我们使用以下=命令运行jar包

shell 复制代码
 java -jar  /home/hmy/demo/target/demo1-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod

看到控制台以下输出则表示正常运行

6. 远程调试

此时我们的项目已经在服务器上运行,接下来我们使用idea远程调试服务器上的代码

  • 在idea中点击编辑配置
  • 新建一个远程JVM调试

  • 更改配置,修改成自己的服务器器ip,以及调试占用的端口号,JDK版本等,idea会自动生成一段调试参数,在调试的时候必须加上。

调试命令如下

shell 复制代码
java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar  /home/hmy/demo/target/demo1-0.0.1-SNAPSHOT.jar  --spring.profiles.active=prod

使用上述的命令启动项目后,在idea中点击Bebug

打上断点进行调试

在访问该接口,可以看到调试已经生效

到此idea对服务上的项目进行远程开发,但是idea为我们提供一种更加简单的远程开发方法,接下来就介绍另一种方法

远程开发

使用idea自带的远程开发功能,可以直接将本地代码的编译,构建,调试,运行等工作都放在远程服务器上只能执行,而本地运行一个客户端远程去操作服务器上的代码,就如同我们平常写代码一样。

1. 首先切换到idea的主页

2. 配置ssh连接

3. 指定远程开发的代码路径

然后就会下载一个客户端,第一次下载可能有点慢,由于我之前安装过,所以就直接进入了该客户端。

启动项目后报错,这是idea的一个bug

解决办法如下

打开设置==》Complier==>在vm potionas中添加以下一行参数,项目就可以正常运行

java 复制代码
-Djdk.lang.Process.launchMechanism=vfork

4. 直接Debug模式启动项目

使用浏览器访问该接口

到此为止,idea远程开发就结束了,推荐使用第二种,非常简单的使用。


各位看官如果觉得文章写得不错,点赞评论关注走一波!谢谢啦!。

相关推荐
试行1 分钟前
Android实现自定义下拉列表绑定数据
android·java
茜茜西西CeCe7 分钟前
移动技术开发:简单计算器界面
java·gitee·安卓·android-studio·移动技术开发·原生安卓开发
救救孩子把12 分钟前
Java基础之IO流
java·开发语言
小菜yh13 分钟前
关于Redis
java·数据库·spring boot·redis·spring·缓存
宇卿.20 分钟前
Java键盘输入语句
java·开发语言
浅念同学20 分钟前
算法.图论-并查集上
java·算法·图论
立志成为coding大牛的菜鸟.33 分钟前
力扣1143-最长公共子序列(Java详细题解)
java·算法·leetcode
鱼跃鹰飞33 分钟前
Leetcode面试经典150题-130.被围绕的区域
java·算法·leetcode·面试·职场和发展·深度优先
爱上语文2 小时前
Springboot的三层架构
java·开发语言·spring boot·后端·spring
serve the people2 小时前
springboot 单独新建一个文件实时写数据,当文件大于100M时按照日期时间做文件名进行归档
java·spring boot·后端