Golang项目在idea中运行遇到的坑

本文记录了一位新手在启动Go语言开源项目Wayne时遇到的数据库连接、证书文件、登录页面及配置读取等问题,并分享了解决过程与心得。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

因为是第一次搞go的项目,也没有学过go这个语言,凭借着强大的运气开始修改开源项目 wayne的源码。

运行过程中,遇到了好多问题。第一个问题就是后端的go项目没法启动。

1. 数据库报错

第一次启动报错:

panic: Error 1045: Access denied for user ''@'localhost' (using password: NO)

goroutine 1 [running]:
github.com/Qihoo360/wayne/src/backend/initial.InitDb()
	E:/idea_workspace/wayne/src/backend/initial/db.go:26 +0x225
github.com/Qihoo360/wayne/src/backend/cmd.Run()
	E:/idea_workspace/wayne/src/backend/cmd/root.go:14 +0x2d
main.main()
	E:/idea_workspace/wayne/src/backend/main.go:9 +0x27

Debugger finished with exit code 0

在这里插入图片描述
这一看就是数据库的问题,命名app.conf中填了数据库的配置的,为什么还是没用呢?

然后我手动在代码里面改。
在这里插入图片描述
这么一改,还真的有用。再次启动项目。

2. 证书文件找不到

panic: read E:\idea_workspace\wayne: The handle is invalid.

goroutine 1 [running]:
github.com/Qihoo360/wayne/src/backend/initial.readKey(0x1ec6042, 0xd, 0x0, 0x0, 0x0)
	E:/idea_workspace/wayne/src/backend/initial/rsa_key.go:45 +0x2c8
github.com/Qihoo360/wayne/src/backend/initial.InitRsaKey()
	E:/idea_workspace/wayne/src/backend/initial/rsa_key.go:14 +0x4f
github.com/Qihoo360/wayne/src/backend/cmd.Run()
	E:/idea_workspace/wayne/src/backend/cmd/root.go:26 +0x152
main.main()
	E:/idea_workspace/wayne/src/backend/main.go:9 +0x27

Debugger finished with exit code 0

在这里插入图片描述
他这是又报了什么东西? debug进去看到是一个证书的路径问题。我找了下项目里面的证书文件,然后又手动改了下代码。
在这里插入图片描述
好,这么一改,也能用了。再次启动。发现启动成功。很高兴啊。
在这里插入图片描述

3. 登录页面缺少输入框

可能高兴地有点早,启动前端项目后,访问,发现,页面是这样的。
在这里插入图片描述
很蒙蔽了。。。

然后通过F12找到原因,就是一个api的response里面的返回内容有点奇怪。
在这里插入图片描述
这里enableDBLogin=false,看着就很奇怪,然后就找到这个api对应的代码。
在这里插入图片描述
发现在这里,然后又是手动把这个默认值false改成true,哦豁,重启之后,发现他是真的可以用了。

在这里插入图片描述

但是这个也太不科学了吧,为什么我配置文件里面的东西他读取不到???

4. 寻找根本原因

然后现在坐不住了,这肯定不能一直手动去改,我猜这肯定是他没读取到配置文件的原因。

看了下beego.AppConfig这个玩意好像就是这个项目里面用来获取配置文件的一个类(我学java的,暂时叫他类吧),然后开始百度,谷歌。。。

然后发现,原来这个问题在go里面很常见啊。。。

然后我就照这个文章,改了我的工作目录。
之前的工作目录:
在这里插入图片描述
改完之后:
在这里插入图片描述

然后把我改动的代码都去掉,发现运行起来舒舒服服的,妈妈再也不用担心我go项目运行不起来了!

<think>我们参考用户提供的引用和之前的回答,来指导如何在IntelliJ IDEA中安装和配置Go插件。 引用[1]提到:在IntelliJ IDEA 14中,通过File->Settings->Plugin,然后选择"install plugin from disk...",选择intellij-go.jar文件安装,重启IDEA。 引用[2]提到:安装golang插件需要手动添加插件的仓库,并给出了两个仓库地址(Alpha和Nightly)。 引用[3]提到:安装Go和File Watcher两个插件,并说明了安装路径:File->Settings->Plugins。 但是,请注意,这些引用可能比较旧(如IDEA 14版本),而目前IntelliJ IDEA的版本已经更新,安装方式可能略有不同,但基本路径相似。 当前(2023年)在较新版本的IntelliJ IDEA(如2020.3及以后)中,安装Go插件通常不需要手动下载jar包,而是可以直接在插件市场搜索安装。 然而,用户提供的引用[2]提到需要手动添加仓库,这是因为在旧版本中,Go插件可能不在默认的插件仓库中。现在,Go插件已经是JetBrains官方插件市场的一部分,可以直接搜索安装。 因此,我们结合当前实际情况和引用内容,给出以下步骤: 步骤1:打开插件设置 - 启动IntelliJ IDEA。 - 进入设置:Windows/Linux系统点击`File` -> `Settings`;macOS系统点击`IntelliJ IDEA` -> `Preferences`。 - 在设置窗口中,选择`Plugins`(插件)。 步骤2:安装Go插件 - 在插件设置页面,点击`Marketplace`(市场)选项卡。 - 在搜索框中输入“Go”,然后按回车键。 - 在搜索结果中找到由JetBrains官方提供的“Go”插件(注意查看作者和描述)。 - 点击插件旁边的`Install`(安装)按钮。 - 等待安装完成,然后按照提示重启IDEA。 注意:如果因为网络问题无法从市场安装,可以参考引用[2]的方法,手动添加插件仓库: - 在插件设置页面,点击设置图标(齿轮形状),选择`Manage Plugin Repositories...`(管理插件仓库)。 - 点击`+`号,添加仓库URL:`https://plugins.jetbrains.com/plugins/alpha/5047`(Alpha版本)或`https://plugins.jetbrains.com/plugins/nightly/5047`(Nightly版本)。 - 然后回到市场,搜索Go插件进行安装。 另外,引用[1]提到了通过磁盘安装(即从本地jar文件安装),如果用户已经下载了jar文件,可以在插件设置页面点击齿轮图标,选择`Install Plugin from Disk...`,然后选择jar文件安装。 步骤3:配置Go SDK - 重启IDEA后,需要配置Go SDK(即Go语言的开发工具包)。 - 确保系统已经安装了Go(可以从https://golang.org/dl/ 下载安装)。 - 在IDEA中,打开任意Go项目(或新建一个),然后进入`File` -> `Project Structure`(项目结构)。 - 在`Project Settings`下的`Project`选项卡中,找到`Project SDK`,点击`New...`,选择`Go SDK`。 - 在弹出的对话框中,选择Go的安装路径(例如,在Windows上可能是`C:\Go`,在macOS/Linux上可能是`/usr/local/go`)。 - 点击`OK`完成配置。 步骤4:安装File Watcher插件(可选,但推荐) - 引用[3]提到安装File Watcher插件,它可以在文件保存时自动运行命令(如格式化、构建等)。 - 按照同样的步骤,在插件市场搜索“File Watcher”并安装(通常由JetBrains提供)。 - 安装后,在设置中搜索“File Watcher”进行配置,添加Go相关的watcher(如`go fmt`和`go build`),但通常Go插件已经集成了这些功能,所以这一步可能不需要。 步骤5:验证安装 - 创建一个新的Go项目:`File` -> `New` -> `Project...`,选择`Go`,然后按照向导操作。 - 创建一个Go文件(如`main.go`),编写简单的代码(如打印“Hello, World!”)。 - 运行代码:右键点击编辑器,选择`Run 'go build main.go'`或直接点击运行按钮。 常见问题解决: - 如果遇到依赖下载问题(如引用[1]提到的),可以设置Go模块代理:在设置中搜索“Go Modules”,在`GOPROXY`字段填入`https://goproxy.io`或`https://goproxy.cn`(国内推荐)。 - 调试问题:如果调试器Delve版本过旧,需要更新。使用命令`go get -u github.com/go-delve/delve/cmd/dlv`安装最新版,然后替换IDEA插件目录下的dlv可执行文件(路径通常在用户目录的插件缓存中)。 总结:安装Go插件后,IntelliJ IDEA将提供完整的Go开发支持,包括代码补全、调试、测试等。 根据用户要求,生成相关问题:</think>### 如何在 IntelliJ IDEA 中安装并配置 Go 插件 以下是详细步骤(兼容 IDEA 2020.3+ 版本): #### 一、安装 Go 插件 1. **打开插件市场** `File` → `Settings` (Windows/Linux) 或 `Preferences` (macOS) → `Plugins` → `Marketplace`[^3] 2. **搜索并安装插件** - 在搜索框输入 **"Go"** - 选择 JetBrains 官方提供的 **Go 插件**(作者:JetBrains s.r.o.) - 点击 `Install` → 重启 IDEA[^1][^3] ![插件安装示意图](https://plugins.jetbrains.com/files/9568/screenshot_179406.png) 3. **备选安装方式**(如市场搜索失败) - 手动添加仓库: ```plaintext Alpha 仓库: https://plugins.jetbrains.com/plugins/alpha/5047 Nightly 仓库: https://plugins.jetbrains.com/plugins/nightly/5047 ``` - 通过 `Install Plugin from Disk...` 加载本地 JAR 文件(需提前下载)[^2] --- #### 二、配置 Go 开发环境 1. **设置 Go SDK** `File` → `Project Structure` → `SDKs` → `+` → 选择 Go 安装路径(如 `/usr/local/go` 或 `C:\Go`) ✅ 验证:`go version` 应显示在 SDK 列表 2. **配置 Go Modules**(推荐) `Settings` → `Go` → `Go Modules` → 启用 `Enable Go Modules integration` - 设置代理(国内加速): ```go GOPROXY=https://goproxy.cn,direct ``` 3. **安装 File Watcher(可选)** - 安装插件:`Plugins` → 搜索 `File Watcher` → 安装[^3] - 作用:自动执行 `go fmt` 等命令 --- #### 三、创建 Go 项目 1. **新建项目** `File` → `New` → `Project` → 选择 `Go` → 设置项目位置和 SDK 2. **编写测试代码** 创建 `main.go`: ```go package main import "fmt" func main() { fmt.Println("Hello, IntelliJ IDEA!") } ``` 3. **运行代码** 右键编辑器 → `Run 'go build main.go'` 或使用 `Ctrl+Shift+F10` 快捷键 --- #### 四、常见问题解决 | 问题现象 | 解决方案 | |---------|---------| | 依赖下载失败 | 在 `Go Modules` 设置代理:`https://goproxy.cn`[^1] | | 调试器报错 `Delve too old` | 终端执行:`go install github.com/go-delve/delve/cmd/dlv@latest` | | 代码补全不生效 | `File` → `Invalidate Caches` → 清除缓存重启 | > 💡 **提示**:首次使用建议安装 **Markdown 插件**,便于编写 Go 项目文档[^3]。 --- ### 配置验证 成功标志: - Go 文件有语法高亮和代码补全 - 右键菜单出现 `Run 'go build...'` 选项 - 调试功能正常启动(需安装 Delve)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值