MeterSphereV2.3版本Mac本地启动详细教程(含常见错误)

news2025/7/21 4:27:20

一、准备工作

  1. 因为代码是java语言写的,所以提前准备好java的环境
  2. JDK11 :https://www.oracle.com/java/technologies/javase/jdk11-archive-downloads.html
  3. maven(3.6.2以上都行):https://archive.apache.org/dist/maven/maven-3/
  4. git安装
  5. mac安装nodejs和npm:https://www.cnblogs.com/aspirant/p/15875878.html
  6. docker安装 (推荐v20.10):https://www.docker.com/products/docker-desktop/
  7. mysql安装:https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.30-macos12-x86_64.dmg
  8. redis安装:https://blog.csdn.net/yinjl123456/article/details/118977360
  9. minio安装:https://blog.csdn.net/sinat_29356635/article/details/127068778
  • 以上环境根据自己电脑系统安装即可。
  • 环境已准备好,请忽略。

二、下载代码

代码地址:https://github.com/metersphere/metersphere/tree/v2.3
需要拉取服务为:

  1. metersphere
  2. ms-jmeter-core
  3. jmeter-plugins-webdriver

三、Mac版本启动

3.1 启动前准备

参考官网把mysql,redis,还有metersphere.properties 分别准备好。(注意:windows系统注意metersphere.properties 的位置。类似:D:\opt\metersphere\conf\metersphere.properties)
https://metersphere.io/docs/v2.x/dev_manual/

V2.3. 版本做了微服务改造,目录结构区别还是蛮大的。

.
├── Jenkinsfile                                     # 构建JAR包使用的 jenkinsfile
├── LICENSE
├── OWNERS
├── README.md                                       # 项目中文介绍
├── README-EN.md                                    # 项目英文介绍
├── SECURITY.md                                     # 安全说明
├── CODE_OF_CONDUCT.md                        
├── CONTRIBUTING.md 
├── build.md                                        # 构建过程
├──framework                                          
│   ├── eureka                                       # 服务注册中心
│   ├── gateway                                      # API 网关
│   ├── sdk-parent                                   # SDK
│   ├── .gitignore                                    
│   └── pom                                          # 主框架的 pom 文件           
├──test-track                                        # 测试跟踪模块
│   ├── backend                                      # 后端代码目录
│   ├── frontend                                     # 前端代码目录
│   ├── Dockerfile                                   # 构建容器镜像使用的 dockerfile
│   └── pom                                          # 测试跟踪模块使用的 pom 文件   
├── api-test                                         # 接口测试模块
│   ├── backend                                      # 后端代码目录
│   ├── frontend                                     # 前端代码目录
│   ├── Dockerfile                                   # 构建容器镜像使用的 dockerfile
│   └── pom                                          # 接口测试模块使用的 pom 文件
├── performance-test                                 # 性能测试模块
│   ├── backend                                      # 后端代码目录
│   ├── frontend                                     # 前端代码目录
│   ├── Dockerfile                                   # 构建容器镜像使用的 dockerfile
│   └── pom                                          # 性能测试模块使用的 pom 文件
├── report-stat                                      # 报表统计模块
│   ├── backend                                      # 后端代码目录
│   ├── frontend                                     # 前端代码目录
│   ├── Dockerfile                                   # 构建容器镜像使用的 dockerfile
│   └── pom                                          # 报表统计模块使用的 pom 文件  
├── project-management                               # 项目管理模块
│   ├── backend                                      # 后端代码目录
│   ├── frontend                                     # 前端代码目录
│   ├── Dockerfile                                   # 构建容器镜像使用的 dockerfile
│   └── pom                                          # 项目管理模块使用的 pom 文件 
├── system-setting                                   # 系统设置模块
│   ├── backend                                      # 后端代码目录
│   ├── frontend                                     # 前端代码目录
│   ├── Dockerfile                                   # 构建容器镜像使用的 dockerfile
│   └── pom                                          # 系统设置模块使用的 pom 文件
├── .gitignore
├── .gitmodules
└── pom.xml                                         # 整体 maven 项目使用的 pom 文件

以上工作都完成之后,我们就开始本地启动了。

3.2 打包依赖

注意:三个项目的maven仓库必须配置一致。如果在打包过程中包依赖找不到问题,就去看下自己的仓库地址是否一致。

因为启动meterspher 需要 一些依赖,所有我们在启动之前先把 ms-jmeter-core 和 jmeter-plugins-webdriver 给 打包一下:

mvn clean install 

3.3 启动metersphere服务

以上依赖都打包好之后,开始执行以下命令,如果打包依赖有问题,请参考下面的问题解决。

在项目根目录下面执行以下命令

    1. 依赖打包
# parent pom 安装到本地仓库, sdk 也进行安装
./mvnw install -N
./mvnw clean install -pl framework,framework/sdk-parent,framework/sdk-parent/domain,framework/sdk-parent/sdk

#  如果是企业版本 需要加上  framework/sdk-parent/xpack-interface

    1. 整体打包
./mvnw clean package

image.png
以上是成功的图片

启动顺序

  1. 先启动eureka
  2. 再启动system-setting (创建数据库的),到这一步 如果可以启动成功,就可以访问页面了。

image.png

  1. 如果要进行多模块联调的话需要启动 gateway 和其他服务
  • 可以通过eureka查看服务信息,注册成功,就可以多模块联调了。

image.png

完整配置文件:

metersphere.properties

# eureka 配置
eureka.client.service-url.defaultZone=http://localhost:8761/eureka/


# 数据库配置
spring.datasource.url=jdbc:mysql://localhost:3306/metersphere2.3?autoReconnect=false&useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false
spring.datasource.username=root
spring.datasource.password=Calong@2015


# kafka 配置,node-controller 以及 data-streaming 服务需要使用 kafka 进行测试结果的收集和处理
kafka.partitions=1
kafka.replicas=1
kafka.topic=JMETER_METRICS
kafka.test.topic=JMETER_TESTS
kafka.bootstrap-servers=127.0.0.1:9092
kafka.log.topic=JMETER_LOGS
kafka.report.topic=JMETER_REPORT

# node-controller 所使用的 jmeter 镜像版本
jmeter.image=registry.cn-qingdao.aliyuncs.com/metersphere/jmeter-master:5.5-ms1-jdk11

# TCP Mock 端口范围
tcp.mock.port=10000-10010

# Redis 配置
spring.redis.host=localhost
spring.session.store-type=redis
spring.redis.port=6379
spring.redis.password=Password123@redis


# 启动模式,lcoal 表示以本地开发模式启动
run.mode=local

# minio 配置
minio.endpoint=http://localhost:9000
minio.accessKey=minioadmin
minio.secretKey=minioadmin

## CAS
#cas.client.name=MS_SERVER
## CAS SERVER URL
#cas.server.url=http://xxx/cas
## METERSPHERE SERVER URL
#as.client.url=http://IP:8081    

mysql

[mysqld]
datadir=/var/lib/mysql

default-storage-engine=INNODB
character_set_server=utf8mb4
#lower_case_table_names=1  --> mysql8 初始化的时候带上
performance_schema=off
table_open_cache=128
transaction_isolation=READ-COMMITTED
max_connections=1000
max_connect_errors=6000
max_allowed_packet=64M
innodb_file_per_table=1
innodb_buffer_pool_size=512M
innodb_flush_method=O_DIRECT
innodb_lock_wait_timeout=1800

server-id=1
log-bin=mysql-bin
expire_logs_days = 2
binlog_format=mixed

character-set-client-handshake = FALSE
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci
init_connect='SET default_collation_for_utf8mb4=utf8mb4_general_ci'

sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

skip-name-resolve

[mysql]
default-character-set=utf8mb4

[mysql.server]
default-character-set=utf8mb4

3.4 总结

  1. 准备好自己的环境
  2. 拉取metersphere代码,项目根目录下执行 ./mvnw install -N
  3. 拉取ms-jmeter-core和jmeter-plugins-webdriver 并且执行 mvn clean install
  4. metersphere 根目录下执行:
./mvnw clean install -pl framework,framework/sdk-parent,framework/sdk-parent/domain,framework/sdk-parent/sdk
  1. metersphere 根目录下执行:./mvnw clean package 打包跟网络和电脑自身的资源配置有关系(大约30min~2h)

以上就是源码启动MeterSphereV2.3微服务架构版本的方法,如有问题,欢迎指正。

四、常见遇到的问题

4.1 启动gateway 报错:“redis.ReactiveRedisSessionRepository” that cloud not be found.

  • 问题:是因为metersphere.properties 少了配置

image.png

  • 解决:

image.png
在metersphere.properties 添加以上配置即可。

4.2 启动服务模块报错:Error creating bean with name ‘minIOFileRepository’

  • 问题:

image.png

image.png

  • 解决:

是因为metersphere.properties 没有配置minio

image.png
添加以上配置:
参考:https://blog.csdn.net/sinat_29356635/article/details/127068778
http://docs.minio.org.cn/docs/master/minio-docker-quickstart-guide
https://blog.csdn.net/weixin_43888891/article/details/122021704

4.3 打包ms-jmeter-core报错 “Could not find artifact io.metersphere:meterspere:pom:2.3 ”

  • 问题

image.png

  • 解决:

以上问题是因为,没有找到对应的依赖,在mvn clean install ms-jmeter-core 项目之前 ,需要在metersphere项目主目录下面,执行 ./mvnw install -N
即:![image.png](https://img-blog.csdnimg.cn/img_convert/a0b612b4faeff8270c5f1614ddd28613.png#averageHue=#f1f1f1&clientId=u7649c602-ea0a-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=590&id=ud9db06b0

然后再去ms-jmeter-core 项目下面执行 mvn clean install

4.4 打包ms-jmeter-core 报错Could not find “jmeter-plugins-webdriver:jar:3.4.4”

  • 问题

image.png

  • 解决

是因为没有“jmeter-plugin-webdriver”依赖包,
直接去Github仓库:https://github.com/metersphere/jmeter-plugins-webdriver下载,注意分支要跟metersphere版本一致。
直接执行mvn clean install

4.5 打包ms-jmeter-core报错"org.apache.commons.lang"不存在

  • 问题

![image.png](https://img-blog.csdnimg.cn/img_convert/65390ac25a053ce893d8c5265fbec782.png#averageHue=#032658&clientId=u7649c602-ea0a-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=451&id=uc21a11bd

  • 解决

在项目ms-jmeter-core的pom.xml文件里面添加

<dependency>
  <groupId>commons-lang</groupId>
  <artifactId>commons-lang</artifactId>
  <version>2.5</version>
</dependency>

4.6 启动gateway报错:”UnkonwHostException“

  • 问题

image.png

  • 解决

是因为配置文件地址不对。修改metersphere.properties 文件
image.png

4.7 启动system-setting 报错"which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by" mysql5.7

  • 问题:

image.png

  • 解决:
  1. 先查出来所有的sql_mode
select @@global.sql_mode;

  1. 然后把only_full_group_by去掉,再跟新一下。
set @@global.sql_mode = "STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/17161.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

进程的虚拟地址空间

每个程序运行起来后&#xff0c;都拥有一个自己的虚拟地址空间&#xff08;注意是虚拟的&#xff0c;不是实际存在的&#xff09;&#xff0c;这个虚拟地址空间的大小由计算机的硬件平台 关于虚拟的概念&#xff0c;当时IBM给出了一种说法很形象生动&#xff1a; 它存在&#x…

XSS-labs靶场实战(三)——第7-8关

今天继续给大家介绍渗透测试相关知识&#xff0c;本文主要内容是XSS-labs靶场实战第7-8关。 免责声明&#xff1a; 本文所介绍的内容仅做学习交流使用&#xff0c;严禁利用文中技术进行非法行为&#xff0c;否则造成一切严重后果自负&#xff01; 再次强调&#xff1a;严禁对未…

PyQt5_股票策略校验工具_升级版

相对 PyQt5_股票策略校验工具 博文&#xff0c;图形展示方面增加多行图展示&#xff0c;原本只有K线图&#xff0c;升级版工具可以动态添加多行指标图 股票策略有效与否的确认&#xff0c;需要在不同股票&#xff0c;不同时间段&#xff0c;运行对比&#xff0c;确认在哪些条件…

图文轻松说透 K8S Pod 各种驱逐场景

图文轻松说透 K8S Pod 各种驱逐场景 Kubernetes Pod 被驱逐是什么意思&#xff1f; 它们被终止&#xff0c;通常是没有足够资源的结果。但是为什么会这样呢&#xff1f; 驱逐是指派给节点的Pod 被终止的过程。Kubernetes 中最常见的情况之一是Preemption&#xff0c;为了在资…

基于PHP+MySQL健身俱乐部系统的设计与实现

随着时代的发展和人们对生活的热爱,健身已经成为人们工作之余的一种热爱,相对应的各种健身俱乐部也如雨后春笋般出现,处于宣传的目的各类健身俱乐部网站也不断的出现,处于对健身俱乐部的宣传作用,我们通过PHP语言和MYSQL数据库开发了健身俱乐部系统 PHP&#xff1a;MySQL健身俱…

笔试强训第29天(有假币+求正数数组的最小不可组成和)

单选 A选项&#xff1a;当内存访问越界的时候&#xff0c;线程会收到信号&#xff0c;进而进行信号处理。调用信号处理函数。 B选项&#xff1a;ACM时间。 A&#xff1a;最后访问时间&#xff0c;文件被读取而更新的时间 C&#xff1a;状态修改时间&#xff0c;文件的属性或者权…

pymsql模块+事务+mysql 注入+数据库备份和恢复

import pymysqlconn pymysql.connect(host127.0.0.1, userroot, password123456, databasehomework) # cur conn.cursor(cursorpymysql.cursors.DictCursor)#查询返回字典 cur conn.cursor() # cursor游标&#xff0c;默认返回元组 try:cur.execute(select * from students…

前端加密与解密

插件加密 MD5加密&#xff08;不可逆&#xff09; MD5加密是不可逆的&#xff0c;相当于是插件加密&#xff0c;当然你也可以把他的方法抄过来自己实现。 MD5.js是通过前台js加密的方式对用户信息&#xff0c;密码等私密信息进行加密处理的工具&#xff0c;前端用的比较多。…

【毕业设计】深度学习手势识别检测系统 - python

文章目录1 前言2 项目背景3 任务描述4 环境搭配5 项目实现5.1 准备数据5.2 构建网络5.3 开始训练5.4 模型评估6 识别效果7 最后1 前言 &#x1f525; Hi&#xff0c;大家好&#xff0c;这里是丹成学长的毕设系列文章&#xff01; &#x1f525; 对毕设有任何疑问都可以问学长…

【ASE+python学习】批量实现将含有空位的结构进行氢饱和(实际就是在某个位置添加氢原子)

批量实现将含有空位的结构进行氢饱和任务大纲任务思路氢原子相对位置计算代码实现-单个结构加氢导入所需库/包计算氢原子坐标给结构加氢运行结果代码实现-批量结构加氢导入相关库/包遍历文件夹内所有结构&#xff0c;并逐次给结构加氢批量实现的逻辑与结果在搬砖过程中&#xf…

【教学类-15-01】20221115《学号(姓名)描字帖-A4横版-竖切》(中班)

效果展示 浅蓝色打印纸&#xff08;灰色字体&#xff09; 背景需求&#xff1a; 在中3班的Python学具实验中&#xff0c;发现至少有3位幼儿明确表示自己不会写学号&#xff0c;还有3位幼儿书写的学号是镜像字&#xff08;两个数字位置互换、两个数字都左右镜像、2和5上下镜像等…

【树莓派不吃灰】命令篇⑤ ps -ef | grep xxx | grep -v grep | wc -l 命令

目录1. 简介2. grep -v grep 命令作用2.1 ps -ef | grep python32.2 grep -v grep❤️ 博客主页 单片机菜鸟哥&#xff0c;一个野生非专业硬件IOT爱好者 ❤️❤️ 本篇创建记录 2022-11-18 ❤️❤️ 本篇更新记录 2022-11-18 ❤️&#x1f389; 欢迎关注 &#x1f50e;点赞 &am…

让 Serverless 更普惠,阿里云函数计算 FC 宣布全面降价,最大幅度达 37.5%

背景 11 月 5 日&#xff0c;2022 杭州 云栖大会上&#xff0c;阿里云宣布函数计算 FC 开启全面降价&#xff0c;vCPU 单价降幅 11% &#xff0c;其他的各个独立计费项最高降幅达 37.5% 。 本次云栖大会上&#xff0c;阿里云智能总裁张建锋表示&#xff0c;以云为核心的新型…

动态分区算法(头歌实验)第1关:首次适应算法。第2关:最佳适应算法。

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 题目&#xff1a; 第1关&#xff1a;首次适应算法 任务描述 假设初始状态下可用的内存空间为55MB&#xff0c;并有如下的请求序列&#xff1a; 作业1申请15MB 作业2申请30M…

Yolov5+图像分割+百度AI接口——车牌实时检测识别系统

Hallo&#xff0c;各位小伙伴大家好呀&#xff01;这两天一直在肝项目&#xff0c;都是关于计算机视觉方面的&#xff0c;所以这两天一直也没有更新&#xff08;真的不是我懒&#xff09;&#xff01;在这个过程中我对Yolov5有了更深刻的理解&#xff0c;在原有的Yolov5框架上增…

14.4、SpringWebFlux-2

14.4、SpringWebFlux-2 14.4.3、SpringWebFlux执行流程和核心 API SpringWebFlux 基于 Reactor&#xff0c;默认容器是 Netty&#xff0c;Netty 是高性能的 NIO 框架&#xff0c;异步非阻塞&#xff08;AIO&#xff0c;是 NIO 的升级&#xff09;的框架 14.4.3.1、执行流程 …

jrtplib开源库系列之三:jrtplib发送接收数据流程

说明 前面2篇文章主要说明了如何安装jrtplib库&#xff0c;以及对example1进行了说明&#xff0c;这篇文章主要说下jrtplib库数据的收发流程。 数据收发流程 从例子1就可以很好的说明jrtplib的使用是非常简单的&#xff0c;主要分为以下几步 1. 设置会话参数(比如时间戳&am…

同花顺_代码解析_技术指标_C

本文通过对同花顺中现成代码进行解析&#xff0c;用以了解同花顺相关策略设计的思想 CBJX 成本均线 成本价均线不同于一般移动平均线系统&#xff0c;成本价均线系统首次将成交量引入均线系统&#xff0c;充分提高均线系统的可靠性。成本均线不容易造成虚假信号或骗线&#xf…

牛客网项目-开发注册功能

前言 本文是对牛客网项目的总结&#xff0c;本文主要讲解页面注册逻辑 当我们点击首页的注册按钮时&#xff0c;会跳转到注册页面&#xff0c;然后再祖册页面提交账号&#xff0c;密码邮箱后会跳转到首页或者直接登录页面进行登录&#xff0c;这个操作可以自己设定 【设计逻辑…

SAP ABAP BAPI_SALESORDER_CREATEFROMDAT2 成本中心 kostl

BAPI_SALESORDER_CREATEFROMDAT2提供参数无成本中心字段&#xff0c;所以需要用扩展字段实现。 BAPE_VBAK&#xff1a; BAPE_VBAKX VBAKKOZ VBAKKOZX 封装扩展结构&#xff1a; DATA: LS_EXTENSION TYPE BAPIPAREX, LT_EXTENSION TYPE TABLE OF BAPIPAREX. DATA: LS_B…