今日问道私服
每天发布最新SF

maven私服配置写过一篇部署私服

前言

好久没写文章了。主要原因是最近工作比较忙。此外,我还利用业余时间和几个男人一起去构建一个产品。目前还处于外部阶段,还会再开发几次。此功能稍后免费供您使用(此处“剧透”下哈,本产品为社区(含新村)智能管理的APP及后台管理软件)

我最近加入了一个新的项目组,做联邦学习业务

我仍在学习联邦学习。熟悉了之后,希望能写出关于这个话题的系列文章

这篇文章记录了我最近想和大家分享的内容

主要有以下几点(内容有点复杂)

私有服务器配置

之前写过一篇关于部署私服的文章

机票专属于您

​​​​

另外 3 分

[技术杂谈]最近一段时间值得分享的内容_spring

这里配置私服的访问地址和访问账号

注意是地址

地址与中心仓库地址等其他地址绑定

[技术杂谈]最近一段时间值得分享的内容_java_02

idea导出maven项目时,会从该地址下载相关依赖jar包

其实是从中央仓库和中央仓库的地址下载的

如果是包,从地址下载

如果是包,从地址下载

如果你还没有下载jar包,那就去中央仓库下载吧

自己开发的jar包,比如包,一开始肯定不在仓库地址

这种情况需要你自己上传

需要在包的pom文件中配置

[技术杂谈]最近一段时间值得分享的内容_java_03

可以通过命令上传到私服

jar包上传到私服地址

jar包上传到私服地址

问题一:

was cached in the local repository, resolution will not be reattempted until the update interval of nexus-aliyun has elapsed or updates are forced

解决方案

1、删除本地maven仓库中已经下载的相关依赖jar,启动新项目

2、mvn- 强制更新

3、在 pom 中配置总是强制更新策略

[技术杂谈]最近一段时间值得分享的内容_spring_04

问题 2:

[技术杂谈]最近一段时间值得分享的内容_docker_05

和这些代码类似,没有报错,但是一启动就报没有这个类

在这些情况下,将项目重新导出到idea以启动它

安装和使用安装

docker pull rabbitmq:management
docker run -d -p 5672:5672 -p 15672:15672 docker.io/rabbitmq:management
http://localhost:15672

默认帐户访客/访客

使用

配置

spring:  rabbitmq:    addresses: xx.xx.xx.xx    connection-timeout: 15000    listener:      simple:        acknowledge-mode: manual        concurrency: 2        max-concurrency: 4        retry:          ####开启消费者重试          enabled: true          ####最大重试次数(默认无数次)          max-attempts: 3          ####重试间隔次数          initial-interval: 1000          prefetch: 4    password: guest    publisher-returns: true    template:      mandatory: true    username: guest    virtual-host: /    queue: test

这里需要注意的是队列名是queue:test

所以先通过接口创建队列

[技术杂谈]最近一段时间值得分享的内容_java_06

如果这个参数配置不正确问道私服权限的数据库账号和密码,会报错

Suppressed: java.lang.UnsatisfiedLinkError: no netty_transport_native_kqueue_x86_64 in java.library.path

还有一点是-host:/

这对应

[技术杂谈]最近一段时间值得分享的内容_spring_07

如果这个参数配置不正确,会报错

Caused by: com.rabbitmq.client.ShutdownSignalException: connection error; protocol method: #method(reply-code=530, reply-text=NOT_ALLOWED - vhost xxx not found, class-id=10, method-id=40)

问题 3

错误报告

Caused by: com.rabbitmq.client.ShutdownSignalException: channel error; protocol method: #method(reply-code=406, reply-text=PRECONDITION_FAILED - inequivalent arg 'type' for exchange 'pay.notify.exchange' in vhost '/': received ''x-delayed-message'' but current is 'direct', class-id=40, method-id=10)

此错误表示列表中已存在名称“pay..”

[技术杂谈]最近一段时间值得分享的内容_java_08

自动删除这个,因为会手动创建,否则已经存在,会报错

问题 4

未配置延迟队列插件

Caused by: com.rabbitmq.client.ShutdownSignalException: connection error; protocol method: #method(reply-code=503, reply-text=COMMAND_INVALID - unknown exchange type 'x-delayed-message', class-id=40, method-id=10)

解决方案 1:

一个。下载插件

https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/releases/download/v3.8.0/rabbitmq_delayed_message_exchange-3.8.0.ez

b,复制到中间

docker cp rabbitmq_delayed_message_exchange-3.8.0.ez 6a56b1871ee3:/home

c。将插件复制到插件库中

在容器中,找到MQ插件的路径

我的是/opt//,把它放进去

d。在

中启用插件

rabbitmq-plugins enable rabbitmq_delayed_message_exchange

注意不要带版本和.ez

e。确认插件是否安装

rabbitmq-plugins list

在插件列表中查看插件是否可用

解决方案 2:

下载插件后,启用插件编译一个新镜像

vim Dockerfile
From rabbitmq:3-managementCOPY rabbitmq_delayed_message_exchange-3.8.0.ez /pluginsRUN rabbitmq-plugins enable —offline rabbitmq_delayed_message_exchange

部署使用阿里云数据库创建库并为阿里云数据库分配权限

先创建数据库,再创建账号并指定数据库和访问权限

[技术杂谈]最近一段时间值得分享的内容_docker_09

如果数据库安装在服务器上,则创建数据库账号并将账号分配给指定数据库的过程如下

1、以root账号登陆 mysql -u root -p
2、创建test账号insert into mysql.user(Host,User,Password) values(“%”,”test”,password(“1234”));
3、为test用户赋予权限
3-1、某个数据库的所有权限grant all privileges on testDB.* to test@localhost identified by ‘1234’;格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by “密码”; 
3-2、部分权限grant select,update on testDB.* to test@localhost identified by ‘1234’;
3-3、授权test用户拥有所有数据库的某些权限*grant select,delete,update,create,drop on *.* to test@“%” identified by “1234”;
test用户对所有数据库都有select,delete,update,create,drop 权限。
4、
@“%” 表示对所有非本地主机授权,不包括localhost。(localhost地址设为127.0.0.1)
对localhost授权:加上一句grant all privileges on testDB.* to test@localhost identified by ‘1234’;即可。
5、查看某个账号的所有权限show grants for dev
6、删除指定账号Delete FROM user Where User=‘test’ and Host=‘localhost’;flush privileges;
7、删除数据库drop database testDB;
8、删除账户及权限:drop user 用户名@‘%’;drop user 用户名@localhost
9、修改指定用户密码mysql -u root -p
update mysql.user set password=password(‘新密码’) where User=“test” and Host=“localhost”;flush privileges;
10、 显示数据表结构describe 表名;11. 删除数据库和数据表drop database 数据库名;drop table 数据表名;
12、刷新系统权限表flush privileges;

阿里巴巴云redis

如果要使用阿里云的redis访问网段

不要为所选网络模式选择经典网络模式

并选择网段模式

[技术杂谈]最近一段时间值得分享的内容_java_11

这可能需要几分钟才能生效

但开放访问白名单

[技术杂谈]最近一段时间值得分享的内容_spring_12

nohup java -jar    /home/test-seceum-studio/${APP_NAME} -Xms256m -Xmx512m -Xss256k -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m -XX:CompressedClassSpaceSize=128m --server.port=8085 >/home/test-seceum-studio/logs/seceum-studio.log 2>&1 &

Xms为jvm启动时分配的显存 Xmx为jvm运行过程中分配的最大显存 Xss为jvm启动的每个线程分配的显存大小,JDK中默认为256K1.4、JDK1.5+ is 1M-XX: size-Size 压缩开关指定这个参数不应该小于3G

使用Java 8以后,关于元空间的JVM参数有两个:-XX:MetaspaceSize=N和-XX:MaxMetaspaceSize=N对于64位JVM来说,元空间的默认初始大小是20.75MB,默认的元空间的最大值是无限MaxMetaspaceSize用于设置metaspace区域的最大值,这个值可以通过mxbean中的MemoryPoolBean获取到,如果这个参数没有设置,那么就是通过mxbean拿到的最大值是-1,表示无穷大
由于调整元空间的大小需要Full GC,这是非常昂贵的操作,如果应用在启动的时候发生大量Full GC,通常都是由于永久代或元空间发生了大小调整,基于这种情况,一般建议在JVM参数中将MetaspaceSize和MaxMetaspaceSize设置成一样的值,并设置得比初始值要大,对于8G物理内存的机器来说,一般我会将这两个值都设置为256M

阿里云端口被激活,内网无法访问怎么办

在阿里云上启动一个8080等端口,先在阿里云控制台安全组开放访问该端口

[技术杂谈]最近一段时间值得分享的内容_java_13

如果此后内网仍然被封锁

需要查看阿里云服务器是否开启了防火墙

如果启用,则需要允许访问此端口

停止防火墙systemctl stop firewalld.service允许对于8080端口的访问firewall-cmd —permanent —zone=public —add-port=8080/tcp开启防火墙systemctl start firewalld重启防火墙网络firewall-cmd —reload
启动:systemctl start firewalld查状态:systemctl status firewalld停止:systemctl disable firewalld禁用:systemctl stop firewalld

如果这个方法不能用,那么你服务器的防火墙应该是防火墙(IPv4),所以设置如下:

vim /etc/sysconfig/iptables# 加入如下代码-A INPUT -m state —state NEW -m tcp -p tcp —dport 8080 -j ACCEPT保存退出后重启防火墙service iptables restart

如果还没有生效

直接执行

iptables -I INPUT -p tcp —dport 8080 -j ACCEPT

就是这样

安装简介

安装工具-yyum-utils—

配置阿里源—-add-repo

删除缓存

安装yum-ce–skip—

项目打包流程介绍


编写Dockerfile
FROM frolvlad/alpine-oraclejdk8:slimVOLUME /tmpADD xxpay4spring-boot.war app.jarRUN sh -c 'touch /app.jar'RUN /sbin/ip route|awk '/default/ { print $3,"tdockerhost" }' >> /etc/hostsENV JAVA_OPTS=""ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ]
编译docker镜像sudo docker build -t xxpay4spring-boot:v1.0.0 .
打标签sudo docker tag xxpay4spring-boot:v1.0.0 registry.cn-shanghai.aliyuncs.com/mengfanxiao/xxpay4spring-boot:v1.0.0
上传到阿里云docker镜像库sudo docker push registry.cn-shanghai.aliyuncs.com/mengfanxiao/xxpay4spring-boot:v1.0.0
下载该镜像sudo docker pull registry.cn-shanghai.aliyuncs.com/mengfanxiao/xxpay4spring-boot:v1.0.0
启动该镜像docker run -d -p 8085:3020 registry.cn-shanghai.aliyuncs.com/mengfanxiao/xxpay4spring-boot:v1.0.0

部署项目

docker search tomcat docker pull tomcat docker run -d -p 8088:8080 —name tomcat —restart=always tomcat## 将war包复制进去docker tomcat中docker cp /usr/local/testJavaProject/test01.war 9fccf0236619:/usr/local/tomcat/webappsdocker run  -p 8088:8080  -v /opt/project:/usr/local/tomcat/webapps  -d  tomcat

其他

已安装但无效如

yum install wget安装好了 wget 但没有生效bash: wget: command not found先yum remove wget 再yum install wget

将vue2项目打包成一个项目

服务部署前已经介绍过一篇文章

机票

​​​​

先打包vue项目引入

先安装插件

1、在全局配置中添加

[技术杂谈]最近一段时间值得分享的内容_spring_14

2、选择要安装的版本

[技术杂谈]最近一段时间值得分享的内容_docker_15

3、安装插件

[技术杂谈]最近一段时间值得分享的内容_spring_16

4、创建一个vue项目

[技术杂谈]最近一段时间值得分享的内容_java_17

5、配置vue项目git地址

[技术杂谈]最近一段时间值得分享的内容_java_18

6、选择协程单片机问道私服权限的数据库账号和密码,通过这些方法,当用户用Git管理Push代码到仓库时,可以手动调用任务

[技术杂谈]最近一段时间值得分享的内容_spring_19

7、构建环境

[技术杂谈]最近一段时间值得分享的内容_java_20

8、添加构建步骤:执行Shell、

添加到执行shell:

#打印环境变量echo $PATH#检查NodeJS环境node -vnpm -v#默认在Git项目目录,我的前端代码都在Backstage目录下cd /var/lib/jenkins/workspace/seceum_studio_web#防止报chromedriver@2.37.0 install: `node install.js错误npm install chromedriver --chromedriver_cdnurl=http://cdn.npm.taobao.org/dist/chromedriver#安装依赖npm install#打包npm run buildcd dist#rm -rf bodac.tar.gz #删除上次打包生成的压缩文件,打包的时候会自动删除整个dist文件夹无需这一步#将dist目录下所有文件打包成tar包tar -zcvf seceum_studio_web.tar.gz *#返回上级目录cd ../

注意:发布的项目源码在/var/lib///

目录

里面的逻辑是vue项目源码下载后编译打包的过程

9、在中添加:

[技术杂谈]最近一段时间值得分享的内容_java_21

cd /home/jenkins/seceum-studio-webrm -rf seceum_studio_webmkdir seceum_studio_webtar -zxvf dist/seceum_studio_web.tar.gz -C seceum_studio_web/rm -rf dist

这里的逻辑是读取刚刚打包好的tar.gz包,发送到目标服务器的指定目录,执行解压命令

注意这个目录需要自己创建/home//–web

但您需要授予权限,因为您可以使用 root 权限来创建自己的

访问这个目录默认是使用用户访问

所以root用户需要将文件夹分配给其他组,用户也可以更改查看权限

chmod-R777–web/

首先将vue打包的文件加载到项目中

1、项目部署完成后构建触发器手动启动项目部署

[技术杂谈]最近一段时间值得分享的内容_java_22

2、在编译java项目之前在中添加了执行shell步骤

cd /var/lib/jenkins/workspace/seceum_studio/src/main/resourcesrm -rf staticmkdir staticcp -R /var/lib/jenkins/workspace/seceum_studio_web/dist  static

这个逻辑是

编译项目的结果是会生成一个dist目录。该目录下的文件为编译后的文件

将文件复制到下面的文件夹中

目前

dist目录下的所有文件都已经打包到项目中了

[技术杂谈]最近一段时间值得分享的内容_java_23

3、启动后

可能存在无法访问/index.html页面的情况

这是一个解决方案

a、查看vue项目配置的路径

[技术杂谈]最近一段时间值得分享的内容_docker_24

这条路径的含义是

因为打包了vue项目,所以没有生成dist目录

有index.html等jscss文件等

如果截图配置为./

这样,index.html在访问jscss等文件时,会从index.html同级目录中找到

从index.html的上层目录查找cssjs文件时默认为../index.html

但是如果dist下的所有文件都加载到ROOT目录下

此路径配置无效,默认从ROOT目录读取

b.如果你使用shiro框架登录

那么你需要释放对这些文件的访问权限

[技术杂谈]最近一段时间值得分享的内容_docker_25

结论

关于我接触了一段时间的内容,还有很多要分享的。这篇文章够长了。请继续关注下一篇文章。

赞(5) 打赏
未经允许不得转载: » maven私服配置写过一篇部署私服
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

今日新开问道私服SF发布网,问道公益私服下载、私服问道开服表

联系我们联系我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏