idea通过Alibaba-Cloud-Toolkit插件部署应用到ECS

设置 AccessKey

image-20210326135640568

image-20210326135714281

没有就创建一个

image-20210326135950668

打开 alibaba cloud toolkit 插件。(没有的话自己去插件库搜索安装)

创建一个实例

image-20210326140301787

填写好 前面创建的 access key ID 和 access key Secret 并保存

image-20210326140201524

上传

image-20210326141339275

上传进度

image-20210326141439165

后台启动

  • nohup 方式

    1
    nohup java -jar  platform-0.0.1-SNAPSHOT.jar >> /usr/local/myweb/api/nohup.log 2>&1 &

参考:https://blog.csdn.net/qq_38974634/article/details/81710382

  • system service 方式

    建立一个文件 vim /etc/systemd/system/myweb-api.service

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    [Unit]
    Description=myweb-api
    After=syslog.target

    [Service]
    # 这里填写自己的路径
    ExecStart=/usr/local/jdk1.8/bin/java -jar /usr/local/myweb/api/platform-0.0.1-SNAPSHOT.jar

    [Install]
    WantedBy=multi-user.target

    保存后启动:systemctl start myweb-api.service

    缺点:日志文件一直打在根目录。可能造成 jar 运行端口一直被占用问题。

    日志重定向

    参考:https://www.itranslater.com/qa/details/2123871100852503552

    参考:https://www.it1352.com/1558911.html

    1. 重新编辑 myweb-api.service

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      [Unit]
      Description=myweb-api
      After=syslog.target

      [Service]
      # 这里填写自己的路径
      ExecStart=/usr/local/jdk1.8/bin/java -jar /usr/local/myweb/api/platform-0.0.1-SNAPSHOT.jar
      #日志管理器 参考:https://www.itranslater.com/qa/details/2123871100852503552
      StandardOutput=syslog
      StandardError=syslog
      #给日志打上标记 并在 /etc/rsyslog.d/custom-log.conf 中处理
      SyslogIdentifier=myweb-api

      [Install]
      WantedBy=multi-user.target

      保存并执行:systemctl daemon-reload

    2. 编辑(新建文件)vim /etc/rsyslog.d/custom-log.conf

      1
      2
      3
      # 如果为 myweb-api 则...
      if $programname == 'myweb-api' then /usr/local/myweb/api/console.log
      & stop
    3. 重启系统日志服务 systemctl restart rsyslog.service

    4. 启动 myweb-api.service

      发现日志顺利输出到了 /usr/local/myweb/api/console.log

远程调试

  • idea 设置

    image-20210326213010298

    端口可随便填。但要与服务器上的 jar 启动时保持一致

  • 启动服务器上的项目 java -jar 参数 xxx.jar (参数为上图中蓝色框的内容)

    1
    2
    3
    4
    5
    6
    7
    8
    [root@iZx068ismxxjaoZ api]# ll
    total 75308
    -rw------- 1 root root 67861 Mar 26 17:35 nohup.out
    -rw-r--r-- 1 root root 76517363 Mar 26 17:19 platform-0.0.1-SNAPSHOT.jar
    -rw-r--r-- 1 root root 528245 Mar 26 17:35 wzy-platform.log
    [root@iZx068ismxxjaoZ api]# java -jar -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8081 platform-0.0.1-SNAPSHOT.jar
    Listening for transport dt_socket at address: 8081

  • 启动 idea 调试

    启动 debug 控制台提示连接成功,即可下断点调试了

    image-20210326193706700