开发环境搭建
1 项目结构
.├── Jenkinsfile # 构建镜像使用的 jenkinsfile├── Dockerfile # 构建镜像使用的 Dockerfile├── LICENSE├── OWNERS├── README.md # 项目中文介绍├── README-EN.md # 项目英文介绍├── SECURITY.md # 安全说明├── CODE_OF_CONDUCT.md #├── CONTRIBUTING.md├── build.md # 构建过程├── backend # 后端项目主目录│ ├── app│ ├── framework│ ├── app│ ├── pom.xml # 后端 maven 项目使用的 pom 文件│ └── .gitignore├── frontend # 前端项目主目录│ ├── .husky│ ├── config # 项目构建配置│ ├── public│ ├── src # 前端代码目录│ ├── types│ ├── .env.development # 开发环境变量声明│ ├── .env.production # 生产环境变量声明│ ├── .eslintignore│ ├── .eslintrc.js│ ├── .eslintrc-auto-import.json│ ├── .gitignore│ ├── .prettierignore│ ├── .prettierrc.js│ ├── .stylelintrc.js│ ├── babel.config.js│ ├── commitlint.config.js # commitlint 配置,校验 commit 信息│ ├── components.d.ts # 组件注册 TS 声明│ ├── Dockerfile # 构建前端应用使用的 Dockerfile│ ├── index.html # 单页面html模板│ ├── nginx.conf # Nginx 配置文件│ ├── package.json # 前端项目中的元数据文件│ ├── pom.xml # 前端 maven 项目使用的 pom 文件│ ├── postcss.config.js│ ├── README.md│ ├── tailwind.config.js│ ├── tsconfig.json│ ├── vitest.config.ts│ ├── .editorconfig│ ├── .gitignore│ ├── babel.config.js # babel配置,支持JSX│ ├── package.json│ ├── vue.config.js│ └── 代码规范.MD├── .gitignore├── mvnw├── mvnw.cmd└── pom.xml # 整体 maven 项目使用的 pom 文件
2 配置开发环境
2.1 拉取代码
需要拉取metersphere 服务代码,并切换到 v3.x 分支。
2.2 启动
在启动 MeterSphere 服务之前要先启动 MySql、Redis、Kafka、Minio 等服务。
MeterSphere 后端使用了 Java 语言的 Spring Boot 框架,并使用 Maven 作为项目管理工具。
开发者需要先在开发环境中安装:
JDK 21Maven 3.8.6 +
- 数据库初始化
MeterSphere 使用 MySQL 数据库 v8 版本。同时 MeterSphere 对数据库部分配置项有要求,请参考下附的数据库配置,修改开发环境中的数据库配置文件。
[mysqld]datadir=/var/lib/mysqldefault-storage-engine=INNODBcharacter_set_server=utf8mb4lower_case_table_names=1performance_schema=offtable_open_cache=128transaction_isolation=READ-COMMITTEDmax_connections=1000max_connect_errors=6000max_allowed_packet=64Minnodb_file_per_table=1innodb_buffer_pool_size=512Minnodb_flush_method=O_DIRECTinnodb_lock_wait_timeout=1800server-id=1log-bin=mysql-binexpire_logs_days = 2binlog_format=mixedcharacter-set-client-handshake = FALSEcharacter-set-server=utf8mb4collation-server=utf8mb4_general_ciinit_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_SUBSTITUTIONskip-name-resolve[mysql]default-character-set=utf8mb4[mysql.server]default-character-set=utf8mb4
请参考文档中的建库语句创建 MeterSphere 使用的数据库,MeterSphere 服务启动时会自动在配置的库中创建所需的表结构及初始化数据。
CREATE DATABASE metersphere_dev /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci *//*!80016 DEFAULT ENCRYPTION='N'*/;
- MeterSphere 配置文件
MeterSphere 会默认加载该路径下的配置文件 /opt/metersphere/conf/metersphere.properties,请参考下列配置创建对应目录及配置文件。
# 数据库配置spring.datasource.url=jdbc:mysql://172.16.200.18:3307/metersphere?autoReconnect=false&useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=falsespring.datasource.password=Password123@mysqlspring.datasource.username=root# kafka 配置,result-hub 服务需要使用 kafka 进行测试结果的收集和处理kafka.bootstrap-servers=172.16.10.155:9092# minio 配置minio.endpoint=http://172.16.200.18:9000minio.access-key=adminminio.secret-key=Password123@minio
- Redis 配置文件
MeterSphere 会默认加载该路径下的配置文件 /opt/metersphere/conf/redisson.yml,请参考下列配置创建对应目录及配置文件。
# Redis 配置singleServerConfig:password: Password123@redisaddress: "redis://localhost:6379"database: 1
- 项目打包
在项目根目录下执行以下命令
1 依赖打包# 此命令会将parent pom 安装到本地仓库,其他外部子工程可以获得最新的 <properties></properties>./mvnw install -N# 此命令会将 domain sdk ,其他外部子工程可以获得最新的 jar./mvnw clean install -DskipTests -DskipAntRunForJenkins --file backend/pom.xml2 整体打包./mvnw clean package
- 启动服务

