使用idea本地开发远程部署和发布Maven项目

目录

  • 服务器配置
  • idea配置
      • 1. 远程连接配置
      • 2. 目录同步配置
  • 如何使用
  • 远程监听JAVA项目(jar包方式)
      • 1. 启动参数的生成
      • 2. 修改服务器脚本
      • 3. 运行监听

服务器配置

服务器需要做以下几件事

  1. 安装git, 把项目下载到指定位置
  2. 安装Maven和项目相关环境
  3. 编写运行脚本
  4. 安装SSH相关服务(一般都有)

其中gitmaven不再赘述,脚本提供思路:

cd到项目内使用mvn命令打包生成对应jar/war包, 然后使用命令行运行项目

idea配置

1. 远程连接配置

  1. 打开idea-顶部工具栏Tools-Deployment-Configuration使用idea本地开发远程部署和发布Maven项目_第1张图片
  2. 在打开的Deployment界面新增远程SFTP服务器
    使用idea本地开发远程部署和发布Maven项目_第2张图片
  3. 界面中在SSH configurations的位置填写服务器地址(可点三个点新增),Root path的位置填写服务器的起始路径作为项目的根路径(例如可以修改为/home),Web server URL指项目访问地址,可忽略
    使用idea本地开发远程部署和发布Maven项目_第3张图片
  4. 在Mappings项界面, 修改本地映射服务器的目录路径,以便于本地修改代码后同步到服务器(Web path指项目的上下文,可忽略),Deployment path和前面的Root path相对应
    使用idea本地开发远程部署和发布Maven项目_第4张图片
  5. Excluded Paths页面可以添加不需要映射(同步)的目录(可忽略)
  6. 全部填写完毕后点击左上角的"✔",将该配置作为默认配置
    使用idea本地开发远程部署和发布Maven项目_第5张图片

2. 目录同步配置

  1. 打开Deployment-Options
    使用idea本地开发远程部署和发布Maven项目_第6张图片
  2. 1位置填写不需要同步的文件或文件类型,2的位置选择同步策略,3的位置如果有错误说没有指定默认配置, 记住之前提到过的"✔"处点击一下即可
    使用idea本地开发远程部署和发布Maven项目_第7张图片

如何使用

  1. 如果在前一图中2的位置使用的是自动保存(Always)方式, 那么你在本地修改代码后,可以直接使用脚本命令执行,否则保存后执行
  2. 执行命令可以在idea中打开远程终端,如果在上述过程中你已经配置好了远程连接,那么在Tools中将会出现Start SSH Session...项,点击-选择服务器后即可打开终端
    使用idea本地开发远程部署和发布Maven项目_第8张图片
  3. 然后在终端中执行写好的启动脚本xxx.sh即可

远程监听JAVA项目(jar包方式)

对于jar包项目,本质上只需要修改java的启动参数

1. 启动参数的生成

  1. 打开idea,点击右上角"▲"和锤子按钮中间的下拉项,点击Edit Configurations...,如图
    使用idea本地开发远程部署和发布Maven项目_第9张图片
  2. 新增远程监听Remote JVM Debug
    使用idea本地开发远程部署和发布Maven项目_第10张图片
  3. Host处填写远程终端IP,Port填写监听端口,复制下方生成的Command line,届时需要添加到服务器执行脚本xxx.sh中,Use module classpath配置debug对应的项目
    使用idea本地开发远程部署和发布Maven项目_第11张图片

2. 修改服务器脚本

修改java -jar执行参数为(Tomcat原理类似,但修改的位置不同,自行百度)

java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar 项目包.jar

3. 运行监听

在idea中锤子和"▲"中间下拉菜单选择刚才配置好的项(remote-debug是自定义名称), 然后点击右侧的debug按钮即可运行监听,在控制台可以看到监听成功提示,此时在项目类位置打上断点即可
使用idea本地开发远程部署和发布Maven项目_第12张图片

注: 本地代码必须和远程服务器代码一致, 发生了任何更改都需要重新部署项目运行再重新监听

你可能感兴趣的:(JAVA,java,后端,spring,boot,maven)