Intellij 上的 Golang 插件。库和断点

Golang plugin on Intellij. Library and break points

我在 Go 上编写代码。我使用 golang 插件在 Idea Intellij 中构建我的项目。我有一个主要的包。在主要导入不同的包。

import (
    "RF"
    "flag"
    "io"
    "net/http"
    "os"
    "runtime"
    "depot"
    "info"
    "logger"
    "logic"
    "poly"
    "ranker"
    "revgeocoder"
    "search"
    "search/engine"
    "stat"
    "views"
    "fmt"
)

如果我在 $GOPATH 中编写路径,这个包链接得很好。在 Idea Intellij 中,它是这样的:

现在,我想要:

  1. 在没有警告的情况下构建我的项目
  2. 正在调试我的项目

第一点。我做了一个 'build' 并且比我有:"Package is not specified"

如果我写入包名称 main,则警告不会消失:

我能做什么?


第二点。组装成功。在我可以调试的那部分包之后,另一个我无法调试的包。例如 package engine 我可以调试。此包的路径:

/home/INT.PV.KM/urvanov/hedgehogues/distr/mapsfullsearch/src/search/engine/engine.go

我无法调试下一个文件。

/home/INT.PV.KM/urvanov/hedgehogues/distr/mapsfullsearch/src/search/context.go

我无法在此文件中设置断点:

请帮我解决我的问题。

  • 在没有警告的情况下构建我的项目 -> 您需要使用完整的包名称(例如,您需要使用 "github.com/dlsniper/demo" 作为 GOPATH /home/florin/go 下的包和完整路径 $GOPATH/src/github.com/dlsniper/demo。或者,您可以使用 Run Kind 目录并将其指向该目录,或者只需使用 func main 附近的绿色箭头,单击它,select Run ... 和然后 select Go Application

  • 调试我的项目 -> 一旦你将 Go Application 类型的 Run Configuration 应用到 运行 应用程序然后调试它你只需要使用 Debug 选项而不是运行。或者,您可以单击 func main 附近的绿色箭头并选择 Debug... 来调试您的应用程序。

第一个问题的答案

Go 中的任何项目都由包组成。除了包裹什么都没有。所有包都位于同一目录中,其中一个是项目。其他目录是库。他们通过环境变量 $GOPATH 设置。 IDEA IntelliJ 让其成为:

文件->设置:

Go 中有两种类型的库:全局库和局部库。您阅读了这个 here

在构建时,有必要指定我们要收集的包并自行排列所有依赖项。在我的项目中,有 n 个数据包。例如,我可以构建 mapsfullsearch 包。我可以构建 mfsimporter 包。或者我可以构建任何其他的,其中有 func main () {/*...*/}。要构建只需指定适当的配置。

之后,解决所有导入(如果存在相关包)。

关于配置。转到 运行 -> 编辑配置...

名称:编译文件的名称。 运行 kind:构建的类型(文件或包)。 Package:包名与所在目录名称相匹配main()。 IDEA IntelliJ 中有下拉列表。看来,如果你开始写他的名字。 输出目录:二进制文件所在的目录。 环境:环境变量 Go Tool arguments:编译器的参数 程序参数:程序参数

有关配置的更多信息,请阅读here

第二题答案

在IDEA中可能指定的文件路径不当。在那种情况下,我在她的问题中提到,问题与库的路径是通过主目录指定的事实有关,主目录由 ~ 表示。 IDEA 不理解这种格式。重复这个问题我没有成功。虽然直到我将项目放入根文件系统之前,我的项目都没有运行。