ZincSearch项目开发环境搭建与构建指南
前言
ZincSearch是一个现代化的搜索引擎项目,采用Go语言开发后端服务,VueJS构建前端界面。本文将详细介绍如何搭建ZincSearch的开发环境,以及如何从源代码构建项目,帮助开发者快速上手项目开发。
开发环境准备
必备工具
在开始开发ZincSearch之前,需要确保系统已安装以下工具:
- Git:用于源代码版本控制
- Go 1.16+(推荐1.19+):ZincSearch后端开发语言
- NodeJS v14+和npm v6+:用于前端开发
从源代码构建
获取源代码
首先需要获取项目源代码,可以通过Git克隆项目到本地:
git clone [项目仓库地址]
cd zincsearch
构建前端界面
ZincSearch的前端采用VueJS开发,构建步骤如下:
cd web
npm install
npm run build
cd ..
构建完成后,生成的文件会存储在web/dist目录中。这些文件将在构建Go应用时被嵌入到最终的可执行文件中。
重要提示:每次修改JavaScript代码后,都需要重新构建前端,以确保变更被正确嵌入到Go应用中。
构建后端服务
下载依赖
go mod tidy
简单构建
go build -o zincsearch cmd/zincsearch/main.go
高级构建选项
CGO_ENABLED=0 GOOS=darwin GOARCH=arm64 go build -ldflags="-s -w -X [项目路径]/pkg/meta.Version=${VERSION} -X [项目路径]/pkg/meta.CommitHash=${COMMIT_HASH} -X [项目路径]/pkg/meta.BuildDate=${BUILD_DATE}" -o zincsearch cmd/zincsearch/main.go
构建参数说明:
GOOS
和GOARCH
:用于跨平台编译,可指定目标操作系统和架构CGO_ENABLED=0
:启用静态链接,生成不依赖外部库的单一可执行文件ldflags
:用于在构建时传递版本信息等变量
开发流程
ZincSearch项目分为两个主要开发领域:UI前端和Server后端。
后端开发
启动开发服务器:
go mod tidy
ZINC_FIRST_ADMIN_USER=admin ZINC_FIRST_ADMIN_PASSWORD=Complexpass#123 go run cmd/zincsearch/main.go
服务默认运行在4080端口。环境变量ZINC_FIRST_ADMIN_USER
和ZINC_FIRST_ADMIN_PASSWORD
仅在首次启动时需要。
前端开发
cd web
npm install
npm run dev
前端开发服务器运行在8080端口。为了完整测试功能,需要同时运行后端服务。
API文档
项目使用Swagger生成API文档,通过访问/swagger/index.html
路径可查看。API文档基于注释自动生成,修改注释后需要重新生成文档:
./swagger.sh
Docker镜像构建
简单构建
docker build --tag zincsearch:latest . -f Dockerfile
多架构构建
需要安装buildx工具,指定目标平台:
docker buildx build --platform linux/amd64 --tag zinc:latest-linux-amd64 . -f Dockerfile.hub
代码质量检查
项目在持续集成流程中会执行以下检查:
-
Go代码测试覆盖率
- 要求覆盖率不低于81%
- 本地可通过
./coverage.sh
检查 - 使用codecov工具可视化覆盖率报告
-
前端代码规范检查
- 使用eslint进行JavaScript代码检查
- 本地可通过
./lint.sh
或npm run lint-autofix
检查和修复问题
结语
本文详细介绍了ZincSearch项目的开发环境搭建、构建流程和开发注意事项。通过遵循这些步骤,开发者可以快速开始对ZincSearch进行功能开发和贡献。项目采用现代化的技术栈和严格的代码质量检查流程,确保了代码的可维护性和可靠性。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考