目录

  • 背景
  • 1.idea配置
  • 2.toolkit配置
  • 3.依赖包分离部署(关键)
  • 4.测试

背景

  1. 本次介绍的插件特别适用于小型单体项目部署,摆脱一切的繁琐部署操作,相对与CI/CD流程配置更加简单快捷。
  2. 我们每次打包后的项目都特别大,其中主要是依赖的jar包占用了大量的空间,而且每次部署都进行了上传,但每次做修改的只有代码。
  3. 所以代码和jar包分离是提升部署效率的关键。

1.idea配置

1.安装插件(我这里已经安装好了)

2.toolkit配置

1.安装后重启idea,点击add host添加服务器连接
host填对应部署的服务器公网ip
端口默认22
再填入username和password后点add添加即可。

2.点击idea标签页tools/Alibaba colud/Deploy to Host进入部署脚本页面
添加刚刚添加的服务器。

下是部署脚本
改自己需要部署的端口和部署路径。

before deploy:
项目上传前的清理操作。

rm -rf /home/*;
kill -9 $(netstat -nlp | grep :8080 | awk '{print $7}' | awk -F"/" '{ print $1 }')

after deploy:
上传后的部署启动操作

nohup java -jar /home/xxx.ar > nohup.log 2>&1 &

预览:



配置maven打包,跳过测试,提升效率

配置好后我们就可以点击run执行完成部署。

但是因为jar包太大部署的速度还是太慢了,下是提升部署速度的关键,采取下例配置后我的小项目一键部署只需10秒左右,十分方便上线测试,如果没有需求可以忽略。

3.依赖包分离部署(关键)

起始配置

<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>

将正常打包的jar包解压

jar -xvf xxx.jar

将BOOT-INF/lib文件夹先上传到服务器上,之后每次部署就不需要再上传依赖jar包了

修改pom.xml,打包不带依赖的jar包,只包含项目代码。

 <build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><!--编译不带jar包--><configuration><!--指定启动类--><mainClass>xx.xx.xx</mainClass><layout>ZIP</layout><includes><include><groupId>nothing</groupId><artifactId>nothing</artifactId></include></includes></configuration><executions><execution><goals><goal>repackage</goal></goals></execution></executions></plugin></plugins><!--需要打包的文件--><resources><resource><directory>src/main/java</directory><includes><include>**/*.yml</include><include>**/*.properties</include><include>**/*.xml</include></includes><filtering>false</filtering></resource><resource><directory>src/main/resources</directory><includes><include>**/*.yml</include><include>**/*.properties</include><include>**/*.xml</include></includes><filtering>false</filtering></resource></resources></build>

打包后的项目从几百几十mb变成了几百kb。
修改after deploy:
path后指定你存放的lib绝对路径。

nohup java -Dloader.path=/home/lib -jar /home/xxx.ar > nohup.log 2>&1 &

4.测试

均全自动部署(上传嗖的一下就过去了哦~),接下来就是tea time~

idea项目一键部署增强版(经验篇)相关推荐

  1. 宝塔面板Java项目一键部署项目404问题

    以下为总结我使用宝塔面板Java项目一键部署功能时遇到坑以及解决方案: 具体故障为:The requested resource [/demo] is not available 主要是TomCat服 ...

  2. Alibaba Cloud Toolkit —— 项目一键部署工具

    Alibaba Cloud Toolkit 介绍 简介 原理 传统部署方式 Cloud Toolkit部署方式 整合步骤 前提 下载插件 参数配置与使用 补充: 1. 如果使用Windows作为部署服 ...

  3. 我参与的一个项目的继续总结:经验篇

    李迟按: 我看了很多关于项目管理的文章,但发现文章说的和我实际上做的,出入很大.后来和同样做项目经理的同事讨论,发现一个秘密:我们只是临时工,临时兼职项目经理.对于项目经理的权力,权利,均是官方套话. ...

  4. Jenkin实现项目一键部署

    下载 Jenkins (也可官网下载) wget http://mirrors.jenkins.io/war-stable/latest/jenkins.war 安装 jdk       配置环境变量 ...

  5. 宝塔面板Java 项目一键部署 一键启动spring boot 日志报错 Error: Unable to access jarfile xxx.jar--service

    根据宝塔官方部署教程 部署SpringBoot项目的时候日志里面写着这么一句话Error: Unable to access jarfile xxx.jar--service 疑惑了一会,后来才发现原 ...

  6. 腾讯云宝塔Linux面板的javaWeb项目的部署

    新建腾讯云服务器 首先我们先点击控制台进去 2.然后我们访问自己购买的服务器 3.然后在服务器栏 4.我们选择安装Linux宝塔面板 5.然后在这下面可以找到打开的网址 然后即可进入宝塔面板 java ...

  7. docker学习总结第六篇:Kubernetes一键部署利器-kubeadm

    通过前面几篇文章的内容,我其实阐述了这样一个思想:要真正发挥容器技术的实力,你就不能仅仅局限于对 Linux 容器本身的钻研和使用. 这些知识更适合作为你的技术储备,以便在需要的时候可以帮你更快的定位 ...

  8. php项目自动布署mysql_如何自动化一键部署PHP项目

    1.技能需求 完成自动化一键部署PHP需要:PHP(略懂),Shell(略懂),git(略懂) 2.最终效果 输入密码,回车,5~20秒后(一般一天一次持续交付,部署的代码量和sql脚本都不会很大) ...

  9. Jenkins使用FTP进行一键部署及回滚2(Windows)(项目实践)

    前提: 这一篇是继上一篇http://www.cnblogs.com/EasonJim/p/6092938.html的真实项目实践. 思路和大致实现步骤请参照上一篇文章. 注意:这篇文章涉及到两台服务 ...

最新文章

  1. 如何写好注释,让同事赞不绝口?
  2. javascript模块化之CommonJS、AMD、CMD、UMD、ES6
  3. 关于助动词和过去分词的一点见解
  4. Nginx 虚拟主机 VirtualHost 配置
  5. Ambari中Ranger安装
  6. linux看是否连上服务器
  7. 探索 .Net Core 的 SourceLink
  8. css3 下拉缩放显示定位导航
  9. ASP.NET 参数传递,长度限制,及使用注意事项。
  10. thinkpad x250装黑苹果教程_GitHub - siweijianrong/Hackintosh: Hackintosh黑苹果长期维护机型EFI及安装教程整理...
  11. UE4-蓝图-角色的移动,视角控制(五)人物走动到停下过度动画
  12. 十八、基础教程-钻取功能(drilldown)
  13. tas5424_TAS5414A,TAS5424A,-电子电路图,电子技术资料网站
  14. netty 学习笔记(一)
  15. 深度 GHOST XP SP3 纯净版 2013 06
  16. OpenCV——图像细化算法
  17. 密码学–数字签名Digital Signature五种分类
  18. DGV:人类基因组结构变异数据库
  19. html获取页面点击事件吗,jquery 获取页面点击事件 $(body).click()
  20. 光纤收发器常见指示灯的意义

热门文章

  1. 后羿采集器怎么导出数据_数据采集教程_智能模式_如何设置自动导出_后羿采集器...
  2. ultimate++使用_使用Ultimate Custom Widget个性化您的Android主屏幕
  3. vue+elementUI同时上传视频和图片并回显
  4. 电子邮件协议详解(SMTP、POP3、IMAP4)
  5. dm服务器未能启动,救命啊!IDES无法启动了!!!!
  6. 图像mnf正变换_PCA和MNF变换及MNF错误
  7. 什么是微波信号发生器
  8. 什么是日活,什么是月活,统计了有什么意义?
  9. Vue之鼠标悬停显示页面加载时间
  10. 7000字和你聊聊如何设计一款高并发架构(建议收藏)