idea项目一键部署增强版(经验篇)
目录
- 背景
- 1.idea配置
- 2.toolkit配置
- 3.依赖包分离部署(关键)
- 4.测试
背景
- 本次介绍的插件特别适用于小型单体项目部署,摆脱一切的繁琐部署操作,相对与CI/CD流程配置更加简单快捷。
- 我们每次打包后的项目都特别大,其中主要是依赖的jar包占用了大量的空间,而且每次部署都进行了上传,但每次做修改的只有代码。
- 所以代码和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项目一键部署增强版(经验篇)相关推荐
- 宝塔面板Java项目一键部署项目404问题
以下为总结我使用宝塔面板Java项目一键部署功能时遇到坑以及解决方案: 具体故障为:The requested resource [/demo] is not available 主要是TomCat服 ...
- Alibaba Cloud Toolkit —— 项目一键部署工具
Alibaba Cloud Toolkit 介绍 简介 原理 传统部署方式 Cloud Toolkit部署方式 整合步骤 前提 下载插件 参数配置与使用 补充: 1. 如果使用Windows作为部署服 ...
- 我参与的一个项目的继续总结:经验篇
李迟按: 我看了很多关于项目管理的文章,但发现文章说的和我实际上做的,出入很大.后来和同样做项目经理的同事讨论,发现一个秘密:我们只是临时工,临时兼职项目经理.对于项目经理的权力,权利,均是官方套话. ...
- Jenkin实现项目一键部署
下载 Jenkins (也可官网下载) wget http://mirrors.jenkins.io/war-stable/latest/jenkins.war 安装 jdk 配置环境变量 ...
- 宝塔面板Java 项目一键部署 一键启动spring boot 日志报错 Error: Unable to access jarfile xxx.jar--service
根据宝塔官方部署教程 部署SpringBoot项目的时候日志里面写着这么一句话Error: Unable to access jarfile xxx.jar--service 疑惑了一会,后来才发现原 ...
- 腾讯云宝塔Linux面板的javaWeb项目的部署
新建腾讯云服务器 首先我们先点击控制台进去 2.然后我们访问自己购买的服务器 3.然后在服务器栏 4.我们选择安装Linux宝塔面板 5.然后在这下面可以找到打开的网址 然后即可进入宝塔面板 java ...
- docker学习总结第六篇:Kubernetes一键部署利器-kubeadm
通过前面几篇文章的内容,我其实阐述了这样一个思想:要真正发挥容器技术的实力,你就不能仅仅局限于对 Linux 容器本身的钻研和使用. 这些知识更适合作为你的技术储备,以便在需要的时候可以帮你更快的定位 ...
- php项目自动布署mysql_如何自动化一键部署PHP项目
1.技能需求 完成自动化一键部署PHP需要:PHP(略懂),Shell(略懂),git(略懂) 2.最终效果 输入密码,回车,5~20秒后(一般一天一次持续交付,部署的代码量和sql脚本都不会很大) ...
- Jenkins使用FTP进行一键部署及回滚2(Windows)(项目实践)
前提: 这一篇是继上一篇http://www.cnblogs.com/EasonJim/p/6092938.html的真实项目实践. 思路和大致实现步骤请参照上一篇文章. 注意:这篇文章涉及到两台服务 ...
最新文章
- 如何写好注释,让同事赞不绝口?
- javascript模块化之CommonJS、AMD、CMD、UMD、ES6
- 关于助动词和过去分词的一点见解
- Nginx 虚拟主机 VirtualHost 配置
- Ambari中Ranger安装
- linux看是否连上服务器
- 探索 .Net Core 的 SourceLink
- css3 下拉缩放显示定位导航
- ASP.NET 参数传递,长度限制,及使用注意事项。
- thinkpad x250装黑苹果教程_GitHub - siweijianrong/Hackintosh: Hackintosh黑苹果长期维护机型EFI及安装教程整理...
- UE4-蓝图-角色的移动,视角控制(五)人物走动到停下过度动画
- 十八、基础教程-钻取功能(drilldown)
- tas5424_TAS5414A,TAS5424A,-电子电路图,电子技术资料网站
- netty 学习笔记(一)
- 深度 GHOST XP SP3 纯净版 2013 06
- OpenCV——图像细化算法
- 密码学–数字签名Digital Signature五种分类
- DGV:人类基因组结构变异数据库
- html获取页面点击事件吗,jquery 获取页面点击事件 $(body).click()
- 光纤收发器常见指示灯的意义
热门文章
- 后羿采集器怎么导出数据_数据采集教程_智能模式_如何设置自动导出_后羿采集器...
- ultimate++使用_使用Ultimate Custom Widget个性化您的Android主屏幕
- vue+elementUI同时上传视频和图片并回显
- 电子邮件协议详解(SMTP、POP3、IMAP4)
- dm服务器未能启动,救命啊!IDES无法启动了!!!!
- 图像mnf正变换_PCA和MNF变换及MNF错误
- 什么是微波信号发生器
- 什么是日活,什么是月活,统计了有什么意义?
- Vue之鼠标悬停显示页面加载时间
- 7000字和你聊聊如何设计一款高并发架构(建议收藏)