看似正常的前后端分离项目,但由于本人久疏战阵,对开发运维技术也已生疏,所以在测试打包部署时遇到了方方面面的坑,用了一下午都解决了😆 ,简单记录下

前端部署

项目源码地址:https://github.com/nnn149/MeetingWeb

1、首先项目下来,就直接准备 npm install 然后 npm run dev了,然后在npm install时报:

npm ERR! Found: @babel/core@7.0.0

balabala后面还一堆的错,经搜索,回退npm版本可以继续执行:

npm install npm@6.14.10 -g

参考:npm install 版本太高导致的错误,用命令行回退版本 还有说法说是切换node版本,没有试。

2、接下来在install过程中又报:

git@github.com: Permission denied (publickey)

参考 VUE npm install 使用出现git@github.com: Permission denied (publickey)

重新生成了下id_rsa.pub可以继续了(装yarn或者cnpm不好吗,可惜我已积重难返)

3、还是install,又报:

npm ERR! E:\Git\cmd\git.EXE ls-remote -h -t git://github.com/adobe-webplatform/eve.git

参考 记录一次——npm ERR! E:\Git\cmd\git.EXE ls-remote -h -t git://github.com/adobe-webplatform/eve.git

修改下git的配置,可以继续了

注:我很少写前端,所以npm的国内源好像都没配过,直接挂梯下的,包括上面的git bash操作

set http_proxy=http://127.0.0.1:7890
set https_proxy=http://127.0.0.1:7890

4、之后就可以npm run dev了,之后按师傅的issue写的,删删改改一些配置,项目就能起来连后端了,接着是打dist

5、打dist就出了一个

npm ERR! missing script: build

打包指令直接使用 npm run build:prod 即可(看package.json文件去)

6、然后就是挂完ng静态资源没加载的事,老生常谈了属于是,好像挺好解决的。

后端部署

项目源码地址:https://github.com/nnn149/MeetingServer

打包前,和前端一样,先按师傅issue写的修修改改,然后本地调试一切正常,但是打包时会遇到一些maven问题和jdk原生方法问题

1、师傅项目是用2.2.7.RELEASE写的,但是我的maven一直找不到spring-boot-maven-plugin的2.2.7.RELEASE,蟹,直接升到我常用的2.5.0去了,结果:

程序包javax.validation.constraints不存在

应该是2.3.0之后没了,需要引maven了,引了一个之后,包都打不了了(当然应该不是这个原因),索性直接回退到2.2.5.RELEASE去了

2、我的项目默认依赖版本是JAVA8,所以在这里遇到了一个RTFM问题:

java readallbytes_无法解析方法readAllBytes()。

去用JAVA8+吧,师傅也是用的JAVA11

3、使用命令行跳测试打包直接报

Fatal error compiling: 错误: 无效的目标发行版:1.11 -> [Help 1]

参考 maven打包java11出错 Fatal error compiling: 错误: 无效的目标发行版:1.11 -> [Help 1]解决方案 (properties标签的配置看一下)

直接使用maven跳过测试(把maven上那个闪电点了就行) package即可

4、放服务器后台启动就行了

#!/bin/bash

export JAVA_HOME=/usr/local/jdk1.8.0_111/
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=.:${JAVA_HOME}/bin:$PATH

# java -jar mq_demo-0.0.1-SNAPSHOT.jar >mq.log 2>&1
nohup java -jar XXX.jar >mq.log &

SQL部署

我在本地用的mysql8.0,上线则需要用5.7,但是踏马的5.7是不是没有

utf8mb4_0900_ai_ci

于是我把线上字符集格式改成了 utf8mb4_general_ci 也能正常运行

关于chrome新版本对webrtc支持的设置

使用http ip访问会有个报错,这个在127.0.0.1时是没有的,参考

navigator.mediaDevices.getUserMedia 报错 undefined 得知

navigator.mediaDevices.getUserMedia 目前支持的url:
localhost、file和https

http的url下navigator.mediaDevices.getUserMedia 为undefined

所以需要另做配置:

参考 关于chrome新版本对webrtc支持的设置 需要

谷歌浏览器地址栏打开 chrome://flags/
enable-webrtc-hide-local-ips-with-mdns 勾选disabled
unsafely-treat-insecure-origin-as-secure 勾选enabled

然后将你要访问的ip写上去 就行了

摄像头就能用了


标题: MeetingWebRTC会议系统安装部署の坑
作者:jyl
地址:http://jinyunlong.xyz/articles/2022/04/11/1649689184516.html