0


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

一、准备工作

  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. 版本做了微服务改造,目录结构区别还是蛮大的。

  1. .
  2. ├── Jenkinsfile # 构建JAR包使用的 jenkinsfile
  3. ├── LICENSE
  4. ├── OWNERS
  5. ├── README.md # 项目中文介绍
  6. ├── README-EN.md # 项目英文介绍
  7. ├── SECURITY.md # 安全说明
  8. ├── CODE_OF_CONDUCT.md
  9. ├── CONTRIBUTING.md
  10. ├── build.md # 构建过程
  11. ├──framework
  12. ├── eureka # 服务注册中心
  13. ├── gateway # API 网关
  14. ├── sdk-parent # SDK
  15. ├── .gitignore
  16. └── pom # 主框架的 pom 文件
  17. ├──test-track # 测试跟踪模块
  18. ├── backend # 后端代码目录
  19. ├── frontend # 前端代码目录
  20. ├── Dockerfile # 构建容器镜像使用的 dockerfile
  21. └── pom # 测试跟踪模块使用的 pom 文件
  22. ├── api-test # 接口测试模块
  23. ├── backend # 后端代码目录
  24. ├── frontend # 前端代码目录
  25. ├── Dockerfile # 构建容器镜像使用的 dockerfile
  26. └── pom # 接口测试模块使用的 pom 文件
  27. ├── performance-test # 性能测试模块
  28. ├── backend # 后端代码目录
  29. ├── frontend # 前端代码目录
  30. ├── Dockerfile # 构建容器镜像使用的 dockerfile
  31. └── pom # 性能测试模块使用的 pom 文件
  32. ├── report-stat # 报表统计模块
  33. ├── backend # 后端代码目录
  34. ├── frontend # 前端代码目录
  35. ├── Dockerfile # 构建容器镜像使用的 dockerfile
  36. └── pom # 报表统计模块使用的 pom 文件
  37. ├── project-management # 项目管理模块
  38. ├── backend # 后端代码目录
  39. ├── frontend # 前端代码目录
  40. ├── Dockerfile # 构建容器镜像使用的 dockerfile
  41. └── pom # 项目管理模块使用的 pom 文件
  42. ├── system-setting # 系统设置模块
  43. ├── backend # 后端代码目录
  44. ├── frontend # 前端代码目录
  45. ├── Dockerfile # 构建容器镜像使用的 dockerfile
  46. └── pom # 系统设置模块使用的 pom 文件
  47. ├── .gitignore
  48. ├── .gitmodules
  49. └── pom.xml # 整体 maven 项目使用的 pom 文件

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

3.2 打包依赖

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

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

  1. mvn clean install

3.3 启动metersphere服务

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

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

    1. 依赖打包
  1. # parent pom 安装到本地仓库, sdk 也进行安装
  2. ./mvnw install-N
  3. ./mvnw clean install-pl framework,framework/sdk-parent,framework/sdk-parent/domain,framework/sdk-parent/sdk
  4. # 如果是企业版本 需要加上 framework/sdk-parent/xpack-interface
    1. 整体打包
  1. ./mvnw clean package

image.png
以上是成功的图片

启动顺序

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

image.png

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

image.png

完整配置文件:

metersphere.properties

  1. # eureka 配置
  2. eureka.client.service-url.defaultZone=http://localhost:8761/eureka/
  3. # 数据库配置spring.datasource.url=jdbc:mysql://localhost:3306/metersphere2.3?autoReconnect=false&useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false
  4. spring.datasource.username=root
  5. spring.datasource.password=Calong@2015
  6. # kafka 配置,node-controller 以及 data-streaming 服务需要使用 kafka 进行测试结果的收集和处理kafka.partitions=1kafka.replicas=1kafka.topic=JMETER_METRICS
  7. kafka.test.topic=JMETER_TESTS
  8. kafka.bootstrap-servers=127.0.0.1:9092
  9. kafka.log.topic=JMETER_LOGS
  10. kafka.report.topic=JMETER_REPORT
  11. # node-controller 所使用的 jmeter 镜像版本jmeter.image=registry.cn-qingdao.aliyuncs.com/metersphere/jmeter-master:5.5-ms1-jdk11
  12. # TCP Mock 端口范围tcp.mock.port=10000-10010
  13. # Redis 配置spring.redis.host=localhost
  14. spring.session.store-type=redis
  15. spring.redis.port=6379spring.redis.password=Password123@redis
  16. # 启动模式,lcoal 表示以本地开发模式启动run.mode=local
  17. # minio 配置minio.endpoint=http://localhost:9000
  18. minio.accessKey=minioadmin
  19. minio.secretKey=minioadmin
  20. ## 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

  1. [mysqld]datadir=/var/lib/mysql
  2. default-storage-engine=INNODB
  3. character_set_server=utf8mb4
  4. #lower_case_table_names=1 --> mysql8 初始化的时候带上performance_schema=off
  5. table_open_cache=128transaction_isolation=READ-COMMITTED
  6. max_connections=1000max_connect_errors=6000max_allowed_packet=64M
  7. innodb_file_per_table=1innodb_buffer_pool_size=512M
  8. innodb_flush_method=O_DIRECT
  9. innodb_lock_wait_timeout=1800
  10. server-id=1
  11. log-bin=mysql-bin
  12. expire_logs_days =2binlog_format=mixed
  13. character-set-client-handshake = FALSE
  14. character-set-server=utf8mb4
  15. collation-server=utf8mb4_general_ci
  16. 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
  17. skip-name-resolve
  18. [mysql]
  19. default-character-set=utf8mb4
  20. [mysql.server]
  21. default-character-set=utf8mb4

3.4 总结

  1. 准备好自己的环境
  2. 拉取metersphere代码,项目根目录下执行 ./mvnw install -N
  3. 拉取ms-jmeter-core和jmeter-plugins-webdriver 并且执行 mvn clean install
  4. metersphere 根目录下执行:
  1. ./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

然后再去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

  • 解决

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

  1. <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
  1. select @@global.sql_mode;
  1. 然后把only_full_group_by去掉,再更新一下。
  1. 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"

本文转载自: https://blog.csdn.net/hao65103940/article/details/127930921
版权归原作者 灬囖 所有, 如有侵权,请联系我们删除。

“MeterSphereV2.3版本Mac本地启动详细教程(含常见错误)”的评论:

还没有评论