无论是上市互联网公司还是中小型的互联网公司,做项目的时候都需要将项目打包部署到服务器。当开发人员对自己所负责的模块进行开发后,将代码上传到git上去,这样工作人员便可以及时下载到最新的代码了解到最新的项目情况。那么对于新手来说,就要问一句:这和部署到服务器有什么关系呢,用开发工具将项目代码git下来,打开不就可以了解最新代码了?为什么还要部署?
因为要考虑到所有的工作人员,不仅开发,还有测试等。将代码下载下来后,打包部署到服务器,这样工作人员便可以通过输入网址,不需要运行代码(代码有时也会因为意外元素而运行失败和代码本身无关),就看见项目的实际结果,可以方便工作人员,大大提高工作效率。
下面进如正题,首先,前端部署。
在打开Windows+R,输入cmd进入窗口。然后,cd到需要打包的项目文件夹里面,然后输入且运行:
npm run build
项目文件夹中便会出现dist这个打包好的文件夹,如下图:
而窗口则是出现如下图,则便是运行成功:
这里有个小插曲:我第一次运行: npm run build时,就打包成功了,第二次则一直出现:
A complete log of this run can be found in:的错误
这里则表示你需要清理缓存了,即:先删除项目中的node_modules文件夹,然后输入:
.1、清理缓存命令:
npm cache clean --force
2、然后在重新安装一次:
npm install /cnpm install
3、然后在运行:
npm run build
如果还是报错,你可以删除整个项目文件夹,在重新打包安装。
然后下载Xshell连接公司的服务器,Xshell的下载网址:
https://www.netsarang.com/zh/free-for-home-school/
这里还需要说明的时,Xshell连接远程服务器,将打包好的jar文件上传到服务器,则又需要其他软件:
红色区域是Xshell自带的传输工具:Xftp,第一次使用时,会要求你安装,这里,我使用的是:FlashFXP;软件的好用程度在于它当前的情况和使用者的熟悉程度,无论多好的软件,都难保以后会不会变质,这里插一句题外话:好书会推荐好的软件,但自己下载后使用起来却不是那么回事的时候,不是作者说谎,而是时代变了!
接下来为大家演示的是:FlashFXP。
点击FlashFXP的左上角:会话→快速连接:
然后在出现的窗口输入服务器IP,用户名和密码,便会窗口的右边,出现服务器的root目录,每一个公司存放的目录都不一样,后端基本都在root里,前端则不同。左边是我们自己电脑的目录,在里面找到项目的存放目录,打开dist文件夹。
如图所示,左右两边都一样,选中它们,鼠标点击右键:上传选定项目,覆盖即可。
后端项目则稍微麻烦一点,最简单的方法是利用Idea里的Maven来进行打包,用Idea打开项目,点击Maven选择,选择点击最下面的模块后,点击Lifecycle下的package,跳过2,直接1和3也可以
如下图:
出现如下图的标记时,证明打包成功:
接下来就和前端一样,通过Xshell连接服务器,使用FlashFXP传输文件,在右边找到服务器存放jar文件的文件夹,找到jar,在右边找到本地目录中的项目目录里,找到target(基本都在最后一个文件夹里),在里面找到jar文件,选中,右键上传。
到这里还没有结束,后端比前端多了手动的重启服务器操作,在Xshell中,输入cd+空格+..进入文件夹,然后输入ls查看当前文件夹里的所有文件,找到存放的目录并cd进去:cd+空格+文件夹名,然后在ls;基本就是这么一个循环过程,一直到找到你上传的后端文件,我这边是:
./文件名.
./文件名.sh+空格+restart
和jar文件在一块,却不是jar,然后重启它,这里不好演示启动指令,可以百度如何重启部署到服务器的后端项目。都是基本的东西,只是新手都不太熟悉,问老手,嫌弃你问没技术含量的,说的快,还嫌弃你悟性差,希望这里能帮到你,也希望当有新人问你时,能耐心理解下,被这种说不用心,是真的很心塞,不熟悉用不到,所以一般讲一次后,都不会用心记得的。
之后Xshell显示如下,就表示重启成功了,可以登录网页二次验证。
人呐,到最后能依靠的只有自己!
项目部署服务器
首先使用Xshell连接服务器,通过以下指令:
cd…
进入服务器内部,然后才可以通过:
cd /文件夹名称/文件夹名称
ls
进入你所上传的jar文件所在目录进行操作:
.jar结尾的是你上传的,而sh结尾的则是服务器根据你上传的文件编译后的,二者都可以进行操作
进入打包好的项目所在的目录,查看项目进程,指令:
ps -ef | grep nhm.jar
nhm.jar上项目nhm打包成jar包后传到服务器上的名称
ps -ef表示bai查看全格式的全部进程,ps是linux下最常用的也是非常bai强大的进程查du看命令zhi,常配合管道命令 | 和查找命令 grep 同时执行来查看特定进程,而grep是抓取的意思。
指令介绍链接,点这里
如何打包服务器
然后便出现如下界面:
一般情况下会出现两中信息,一是你正在进行的ps -ef | grep hkj.jar指令的进程,另一种是你正在运行的项目的进程一般以dev结尾,使用:指令:
Kill -9 9212(进程号)
括号里不需要写,仅为注释;
然后在使用查看指令查看是否杀死进程,杀死成功后,就可以使用指令:
nohup java -jar hkj.jar hkj.jar & 或者 java -jar hkj.jar hkj.jar来运行项目
或者使用指令:
./hkj.sh restart
来重启项目,可以省略杀死进程的操作。
这里需要说明下nohup java -jar hkj.jar hkj.jar & 和 java -jar hkj.jar hkj.jar来运行项目的区别;
当你使用Xshell来运行这两条命令的时候,后者,在命令行运行,命令行关闭了,也就是你断开服务器连接后,就结束了,而前者虽然也是在命令行输入指令运行,但是加上&号,就会在后台运行,命令行的关闭就影响不到它;
nohup java -jar hkj.jar hkj.jar &启动和./hkj.sh restart(或者start)启动,都是启动项目,功能一样,但最好别一起用,来自我前辈的建议,个人了解不多,也不详细。