栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

MeterSphere开发环境搭建

MeterSphere开发环境搭建

开发文档

https://metersphere.io/docs/dev_manual/

配置开发环境 操作系统

Windows11

源码

https://github.com/metersphere/metersphere

环境依赖

idea:开发工具;

jdk1.8:后端是Java;

maven:后端为maven管理;

nodejs:前端为vue,需要使用到npm;

mysql:存放项目数据;

kafka:

zookper:

scoop install extras/idea
scoop install java/corretto8-jdk
scoop install maven
scoop install nodejs
scoop install apps/mysql57
scoop install kafka

mysql数据库安装完毕后,先不要启动,定位到my.ini配置文件,增加以下配置,否则启动项目会报错;

default-storage-engine=INNODB
lower_case_table_names=1
table_open_cache=128
max_connections=2000
max_connect_errors=6000
innodb_file_per_table=1
innodb_buffer_pool_size=1G
max_allowed_packet=64M
transaction_isolation=READ-COMMITTED
innodb_flush_method=O_DIRECT
innodb_lock_wait_timeout=1800
innodb_flush_log_at_trx_commit=0
sync_binlog=0

# 以上非必须,以下为必须
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
skip-name-resolve

如果不增加sql_mode,启动项目可能提示第68版本的sql执行报错,打开dbeaver工具手动执行第68个sql,基本能定位到时sql_mode导致的问题;

Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2022-03-10 11:41:11,920 ERROR g.springframework.boot.SpringApplication: 830 - Application run failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'schedulerStarter': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'flywayInitializer' defined in class path resource [org/springframework/boot/autoconfigure/flyway/FlywayAutoConfiguration$FlywayConfiguration.class]: Invocation of init method failed; nested exception is org.flywaydb.core.api.FlywayException: Schema `metersphere_dev` contains a failed migration to version 68 !

修改完毕mysql的配置文件后,使用管理员运行命令行工具执行以下,将mysql添加为服务;

mysqld --install MySQL --defaults-file="C:Usersscoopappsmysql57currentmy.ini"

启动mysql服务,使用dbeaver连接,这时root用户是没有密码的,可以为mysql设置下密码;

mysql -u root -p

#将数据库切换至mysql库
mysql> USE mysql;
#修改密码
mysql> update user set authentication_string=PASSWORd('123456') where user='root';
#刷新MySQL权限相关的表
mysql> flush privileges;
mysql> exit;

使用dbeaver创建metersphere_dev数据库

CREATE DATAbase `metersphere_dev` 

安装完毕kafka,尝试启动

PS C:Usersscoopappskafkacurrent> .binwindowszookeeper-server-start.bat .configzookeeper.properties
输入行太长。
命令语法不正确。

将上述安装包拷贝至D盘根目录,如图所示;

另外记得修改zookeeper.properties、server.properties配置文件中相关data、log路径;启动zookeeper;

启动kafka;

PS D:kafka3.1.0> .binwindowskafka-server-start.bat .configserver.properties

拉取代码,目前是v1.18.1;

git clone git@github.com:metersphere/metersphere.git

使用idea打开metersphere项目;在backendsrcmainresources目录下新建metersphere.properties文件;

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

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

# node-controller 所使用的 jmeter 镜像版本
jmeter.image=registry.fit2cloud.com/metersphere/jmeter-master:0.0.6

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

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

拷贝metersphere.properties路径,并修改backendsrcmainjavaiometersphereApplication.java中metersphere.properties配置文件路径;

@EnableScheduling
@PropertySource(value = {
        "classpath:/base.properties",
        "file:D:\github\metersphere\backend\src\main\resources\metersphere.properties",
}, encoding = "UTF-8", ignoreResourceNotFound = true)
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

同步修改generatorConfig.xml、logback.xml文件中metersphere.properties配置文件路径;修改base.properties文件中jmeter.home如下;

# jmeter
#jmeter.home=/opt/jmeter
jmeter.home=D:\github\metersphere\backend\src\main\resources\jmeter
运行后端服务

选中Application.java右键运行Run ‘Application.main()’;

Error running Application. Command line is too long. 
Shorten the command line via JAR manifest or via a classpath file and rerun.

修改Spring Boot 启动项;

Modify options下拉选择Shorten command line;

选择JAR manifest - java -cp classpath.jar cleassName [args];

再次选中Application.java右键运行Run ‘Application.main()’;

并开始调用Jmeter以及kafka等;

kafka日志;

运行前端服务 初始化

安装前端依赖组件;

D:githubmetersphere>cd frontend
D:githubmeterspherefrontend>npm install
...
added 1534 packages, and audited 1535 packages in 2m

92 packages are looking for funding
  run `npm fund` for details

37 vulnerabilities (26 moderate, 11 high)

To address issues that do not require attention, run:
  npm audit fix

To address all issues (including breaking changes), run:
  npm audit fix --force

Run `npm audit` for details.

D:githubmeterspherefrontend>
运行前端服务

启动前端服务;

D:githubmeterspherefrontend>npm run serve
...
    at FSReqCallback.readFileAfterClose [as oncomplete] (node:internal/fs/read_file_context:68:3) {
  opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ],
  library: 'digital envelope routines',
  reason: 'unsupported',
  code: 'ERR_OSSL_EVP_UNSUPPORTED'
}

Node.js v17.6.0

查询了一下应该是nodejs v17版本以上存在,OpenSSL3.0对允许算法和密钥大小增加了严格的限制,可以通过添加以下配置略过;

export NODE_OPTIONS=--openssl-legacy-provider

修改frontendpackage.json中serve/build配置项;

"scripts": {
  "serve": "export NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve",
  "serve-win": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve",
  "build": "export NODE_OPTIONS=--max_old_space_size=4096 --openssl-legacy-provider && vue-cli-service build",
  "build-win": "SET NODE_OPTIONS=--max_old_space_size=4096 --openssl-legacy-provider && vue-cli-service build",
  "lint": "vue-cli-service lint"
  }

Linux机器使用export,Windows机器需要使用SET,否则会报错以下错误;

D:githubmeterspherefrontend>npm run serve-win

> vue-demo@0.1.0 serve-win
> exprot NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve

'exprot' 不是内部或外部命令,也不是可运行的程序
或批处理文件。

再次启动前端服务;

D:githubmeterspherefrontend>npm run serve-win

> vue-demo@0.1.0 serve-win
> SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve

 INFO  Starting development server...
...

 DONE  Compiled successfully in 92629ms                                                                                                                                                 10:20:32


  App running at:
  - Local:   http://localhost:8080/ 
  - Network: http://1xx.1xx.xx.xx:8080/

  Note that the development build is not optimized.
  To create a production build, run npm run build.

使用浏览器访问http://localhost:8080/

使用用户名admin,密码metersphere登录成功如下图;

问题

1、前端服务启动成功后缺失一些图片,接下来再详细分析;

2、由于是基于Windows系统进行环境搭建,一些命令需要注意与Linux的区别;

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/761319.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号