jar包部署云端之--快速部署

jar包部署云端之–快速部署


怎么将本地springboot项目部署在远程的linux上?

萌新在学习项目的时候,总会遇到本地写完的项目部署在云端的情况。所以写此贴进行以下总结。


一、本地生成正确springboot项目jar包

第一步

首先本地的项目在idea上能正常启动。

项目必须能跑通首先!!

第二步

查看pom文件

 <build>
    <plugins>
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
        <configuration>
          <mainClass>com.llbnk.App</mainClass>
          <!--这个就是你的springboot的启动类 -->
        </configuration>
      </plugin>
    </plugins>
    <finalName>speed_buy_project</finalName>
    <!--你导出的项目的名字-->
  </build>

注意这个地方,把项目中一些无关的东西统统去掉!!!!!。
比如说,什么mybatis一些反编译生成工具!!!
或者一些什么maven的编译的plugin能去掉就去掉!!!!
本萌新就是因为在build中添加了太多plugin,导致jar运行出现找不到主类错误和noclass这些错误!!
![找不到主类错误](https://img-blog.csdnimg.cn/629b1d76bdac4416801c04282cf436d1.png

noclass错误


找不到主类错误

血一样的教训,大家一定要检查好自己的pom文件。

第三步

编译jar包。

在这里插入图片描述


然后使用install或者package进行打包。
在你电脑的target文件下可以找到jar包(注意如果上面步骤成功了,会出现一个jar.original这个文件如果没有这个文件说明上面哪里出现了问题!!)

在这里插入图片描述


如果到这里可以看出已经生成对的jar包文件了。

二、本地跑通jar包

要想在linux上跑通jar包首先本地得能先跑通。不要幻想本地都跑不通linux就出现奇迹了,奇迹只有windows上能通linux上通不了。

对应你的项目的target目录。
然后使用cmd打开命令行。
输入命令启动jar在本地先运行。

java -jar 你自己的项目名.jar

如果没有什么意外,就能正常在本地运行jar包了。

在这里插入图片描述


这个时候你最好访问一下url看看是不是你的项目在本地能提供对的json结果。
本萌新在跑的时候就发现了一个错误。
发现Base64Encoder这个类不可用的情况需要替换成java自带的Base64。

三、云端跑通jar包

使用Xftp连接你的linux系统(可以是本地的VMWare也可以是阿里云腾讯云等等)

在这里插入图片描述


将你的jar包拷到对应的linux路径上。这里我拷贝到了**/opt**目录下。

在这里插入图片描述


打开linux系统
查看是否已经载入jar包

在这里插入图片描述


此时你也可以新建一个文件夹或者直接在opt下运行都行。推荐新建一个文件夹。
我将jar文件拷到/var/www/speed_buy_project路径下。

//创建文件夹命令
mkdir 你要设置的文件夹
//移动jar包从A到B
mv A B (写绝对路径)

此时你的文件夹里面的jar包还是红色的

在这里插入图片描述


你还需要chmod -R 777 *命令将其变成可操作的chmod -R 777 *

在这里插入图片描述


到这步就可以类似于本地一样进行java -jar 你自己的项目名.jar

如果没有什么意外,就能正常在远运行jar包了。

在这里插入图片描述

这个时候你就可以通过远程的地址访问项目了。
如果是阿里云可以通过工ip地址来进行访问

在这里插入图片描述


在这里插入图片描述


可以看到都能访问这个就对了。

四、云端deploy部署

我们发现jar包每次打包上传很麻烦,而且每次如果改变端口,还需要再idea.上改动然后再打jar包太麻烦了。我们想采用远程配置的方式进行建立在远程服务器上的部署。
在这里我们以端口号为例,原端口号设置的是9000,我们想在linux部署端口号为8888 。

在这里插入图片描述


新建立一个properties文件,这个文件的作用就是会覆盖你原来项目的properties转为加载你这个properties文件

在这里插入图片描述


更改端口号为8888

在这里插入图片描述


再创建一个deploy.sh文件vim deploy.sh,这个文件的作用是采用deploy文件部署,可以让java项目一直再linux后台运行

在这里插入图片描述


文件里面使用nohup命令可以设置jvm虚拟机参数已经properties替换文件等

nohup java -Xms400m -Xmx400m -XX:NewSize=200m -XX:MaxNewSize=200m -jar speed_buy_project.jar --spring.config.addition-location=/var/www/speed_buy_project/application.properties

保存好文件退出
然后将所有文件变为可操作

在这里插入图片描述


部署项目 ./deploy.sh &

在这里插入图片描述

此时项目已经后台部署了
我们可以通过命令tail -200f nohup.out 来查看项目运行状况。

在这里插入图片描述


此时我们的deploy部署就完成了。


总结

这次的部署记录就到这了。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


学习编程是顺着互联网的发展潮流,是一件好事。新手如何学习编程?其实不难,不过在学习编程之前你得先了解你的目的是什么?这个很重要,因为目的决定你的发展方向、决定你的发展速度。
IT行业是什么工作做什么?IT行业的工作有:产品策划类、页面设计类、前端与移动、开发与测试、营销推广类、数据运营类、运营维护类、游戏相关类等,根据不同的分类下面有细分了不同的岗位。
女生学Java好就业吗?女生适合学Java编程吗?目前有不少女生学习Java开发,但要结合自身的情况,先了解自己适不适合去学习Java,不要盲目的选择不适合自己的Java培训班进行学习。只要肯下功夫钻研,多看、多想、多练
Can’t connect to local MySQL server through socket \'/var/lib/mysql/mysql.sock问题 1.进入mysql路径
oracle基本命令 一、登录操作 1.管理员登录 # 管理员登录 sqlplus / as sysdba 2.普通用户登录
一、背景 因为项目中需要通北京网络,所以需要连vpn,但是服务器有时候会断掉,所以写个shell脚本每五分钟去判断是否连接,于是就有下面的shell脚本。
BETWEEN 操作符选取介于两个值之间的数据范围内的值。这些值可以是数值、文本或者日期。
假如你已经使用过苹果开发者中心上架app,你肯定知道在苹果开发者中心的web界面,无法直接提交ipa文件,而是需要使用第三方工具,将ipa文件上传到构建版本,开...
下面的 SQL 语句指定了两个别名,一个是 name 列的别名,一个是 country 列的别名。**提示:**如果列名称包含空格,要求使用双引号或方括号:
在使用H5混合开发的app打包后,需要将ipa文件上传到appstore进行发布,就需要去苹果开发者中心进行发布。​
+----+--------------+---------------------------+-------+---------+
数组的声明并不是声明一个个单独的变量,比如 number0、number1、...、number99,而是声明一个数组变量,比如 numbers,然后使用 nu...
第一步:到appuploader官网下载辅助工具和iCloud驱动,使用前面创建的AppID登录。
如需删除表中的列,请使用下面的语法(请注意,某些数据库系统不允许这种在数据库表中删除列的方式):
前不久在制作win11pe,制作了一版,1.26GB,太大了,不满意,想再裁剪下,发现这次dism mount正常,commit或discard巨慢,以前都很快...
赛门铁克各个版本概览:https://knowledge.broadcom.com/external/article?legacyId=tech163829
实测Python 3.6.6用pip 21.3.1,再高就报错了,Python 3.10.7用pip 22.3.1是可以的
Broadcom Corporation (博通公司,股票代号AVGO)是全球领先的有线和无线通信半导体公司。其产品实现向家庭、 办公室和移动环境以及在这些环境...
发现个问题,server2016上安装了c4d这些版本,低版本的正常显示窗格,但红色圈出的高版本c4d打开后不显示窗格,
TAT:https://cloud.tencent.com/document/product/1340