You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
117 lines
3.6 KiB
117 lines
3.6 KiB
|
3 months ago
|
# 修复 Go 依赖脚本
|
||
|
|
param()
|
||
|
|
|
||
|
|
$ErrorActionPreference = "Stop"
|
||
|
|
|
||
|
|
Write-Host "==============================================" -ForegroundColor Cyan
|
||
|
|
Write-Host " 修复 Go 依赖问题 " -ForegroundColor Cyan
|
||
|
|
Write-Host "==============================================" -ForegroundColor Cyan
|
||
|
|
Write-Host ""
|
||
|
|
|
||
|
|
# 检查 Go 是否安装
|
||
|
|
Write-Host "[1/5] 检查 Go 环境..." -ForegroundColor Yellow
|
||
|
|
$GoCmd = Get-Command go -ErrorAction SilentlyContinue
|
||
|
|
if (-not $GoCmd) {
|
||
|
|
Write-Error "未找到 Go 命令,请先安装 Go"
|
||
|
|
exit 1
|
||
|
|
}
|
||
|
|
|
||
|
|
$GoVersion = & go version
|
||
|
|
Write-Host " Go 版本: $GoVersion" -ForegroundColor Green
|
||
|
|
|
||
|
|
# 检查 GOPROXY
|
||
|
|
Write-Host "[2/5] 检查 GOPROXY 设置..." -ForegroundColor Yellow
|
||
|
|
$GoProxy = & go env GOPROXY
|
||
|
|
Write-Host " 当前 GOPROXY: $GoProxy" -ForegroundColor Gray
|
||
|
|
|
||
|
|
if ($GoProxy -ne "https://goproxy.cn,direct") {
|
||
|
|
Write-Host " 设置国内镜像..." -ForegroundColor Yellow
|
||
|
|
& go env -w GOPROXY="https://goproxy.cn,direct"
|
||
|
|
Write-Host " GOPROXY 已设置为 https://goproxy.cn,direct" -ForegroundColor Green
|
||
|
|
}
|
||
|
|
|
||
|
|
# 检查 GOPATH
|
||
|
|
Write-Host "[3/5] 检查 GOPATH..." -ForegroundColor Yellow
|
||
|
|
$GoPath = & go env GOPATH
|
||
|
|
Write-Host " GOPATH: $GoPath" -ForegroundColor Gray
|
||
|
|
|
||
|
|
# 进入项目目录
|
||
|
|
Write-Host "[4/5] 进入项目目录..." -ForegroundColor Yellow
|
||
|
|
$ProjectDir = "d:\fs_workspace\market-data-service"
|
||
|
|
if (-not (Test-Path $ProjectDir)) {
|
||
|
|
Write-Error "项目目录不存在: $ProjectDir"
|
||
|
|
exit 1
|
||
|
|
}
|
||
|
|
|
||
|
|
Set-Location $ProjectDir
|
||
|
|
Write-Host " 当前目录: $(Get-Location)" -ForegroundColor Green
|
||
|
|
|
||
|
|
# 清理缓存
|
||
|
|
Write-Host "[5/5] 修复依赖..." -ForegroundColor Yellow
|
||
|
|
|
||
|
|
# 删除旧的模块缓存
|
||
|
|
Write-Host " 清理模块缓存..." -ForegroundColor Gray
|
||
|
|
Remove-Item -Path "go.sum" -ErrorAction SilentlyContinue
|
||
|
|
Remove-Item -Path "$GoPath\pkg\mod\cache" -Recurse -Force -ErrorAction SilentlyContinue
|
||
|
|
|
||
|
|
# 设置环境变量
|
||
|
|
$env:GOPROXY = "https://goproxy.cn,direct"
|
||
|
|
|
||
|
|
# 运行 go mod tidy
|
||
|
|
Write-Host " 运行 go mod tidy..." -ForegroundColor Yellow
|
||
|
|
try {
|
||
|
|
& go mod tidy -v
|
||
|
|
if ($LASTEXITCODE -eq 0) {
|
||
|
|
Write-Host " go mod tidy 成功" -ForegroundColor Green
|
||
|
|
} else {
|
||
|
|
Write-Warning "go mod tidy 返回非零退出码: $LASTEXITCODE"
|
||
|
|
}
|
||
|
|
} catch {
|
||
|
|
Write-Warning "go mod tidy 执行出错: $_"
|
||
|
|
}
|
||
|
|
|
||
|
|
# 下载依赖
|
||
|
|
Write-Host " 运行 go mod download..." -ForegroundColor Yellow
|
||
|
|
try {
|
||
|
|
& go mod download -x
|
||
|
|
if ($LASTEXITCODE -eq 0) {
|
||
|
|
Write-Host " go mod download 成功" -ForegroundColor Green
|
||
|
|
} else {
|
||
|
|
Write-Warning "go mod download 返回非零退出码: $LASTEXITCODE"
|
||
|
|
}
|
||
|
|
} catch {
|
||
|
|
Write-Warning "go mod download 执行出错: $_"
|
||
|
|
}
|
||
|
|
|
||
|
|
# 验证
|
||
|
|
Write-Host " 验证依赖..." -ForegroundColor Yellow
|
||
|
|
try {
|
||
|
|
& go list -m all | Out-Null
|
||
|
|
Write-Host " 依赖验证成功" -ForegroundColor Green
|
||
|
|
} catch {
|
||
|
|
Write-Warning "依赖验证失败: $_"
|
||
|
|
}
|
||
|
|
|
||
|
|
Write-Host ""
|
||
|
|
Write-Host "==============================================" -ForegroundColor Cyan
|
||
|
|
Write-Host " 依赖修复完成 " -ForegroundColor Cyan
|
||
|
|
Write-Host "==============================================" -ForegroundColor Cyan
|
||
|
|
Write-Host ""
|
||
|
|
|
||
|
|
# 检查 go.sum 是否存在
|
||
|
|
if (Test-Path "go.sum") {
|
||
|
|
Write-Host "✓ go.sum 文件已生成" -ForegroundColor Green
|
||
|
|
} else {
|
||
|
|
Write-Warning "✗ go.sum 文件未生成"
|
||
|
|
}
|
||
|
|
|
||
|
|
Write-Host ""
|
||
|
|
Write-Host "接下来可以尝试编译项目:" -ForegroundColor Yellow
|
||
|
|
Write-Host " go build ./cmd/server" -ForegroundColor Gray
|
||
|
|
Write-Host ""
|
||
|
|
Write-Host "或者直接运行:" -ForegroundColor Yellow
|
||
|
|
Write-Host " go run ./cmd/server" -ForegroundColor Gray
|
||
|
|
Write-Host ""
|
||
|
|
|
||
|
|
Read-Host "按 Enter 键退出"
|