Intellij上的Golang插件。图书馆和断点

时间:2016-12-26 17:15:49

标签: go intellij-idea plugins jetbrains-ide

我在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中它是这样的:

Path to packages

现在,我想:

  1. 在没有警告的情况下构建我的项目
  2. 调试我的项目
  3. 第一点。我做了一个' build'而不是我:"未指定包裹"

    Package is not specified

    如果我写信给包名main,警告就不会消失:

    Cannot find package <code>main</code>

    我能做什么?

    第二点。装配成功。在我可以调试的那部分包之后,我无法调试另一个包。例如包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
    

    Tree of catalog

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

    Break point

    请帮我解决我的问题。

2 个答案:

答案 0 :(得分:0)

  • 在没有任何警告的情况下构建我的项目 - &gt;您需要使用完整的包名称(例如,您需要使用“github.com/dlsniper/demo”获取GOPATH /home/florin/go下的包和完整路径$GOPATH/src/github.com/dlsniper/demo。或者,您可以使用Run Kind目录并将其指向目录,或者只是使用func main附近的绿色箭头,点击它,选择Run ...,然后选择Go Application
  • 调试我的项目 - &gt;一旦你获得Run Configuration类型Go Application来运行应用程序然后调试它,你只需要使用Debug选项而不是Run。或者,您可以点击func main附近的绿色箭头,然后选择Debug...来调试您的应用。

答案 1 :(得分:0)

第一个问题的答案

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

文件&gt;设置:

Outer packages

Go中有两种类型的lib:globals和locals。你读到了这个here

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

之后,所有Imports(如果存在相关的包)都已解决。

Struct of my project

关于配置。转到运行 - &gt;编辑配置...

Settings of configurations

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

有关配置的详细信息,请参阅here

第二个问题的答案

在IDEA中可能指定文件路径不当。在那种情况下,我在她的问题中提到过,问题与通过主目录指定库的路径有关,该目录由~表示。 IDEA没有看到这种格式。重复这个问题我没有成功。虽然直到我把项目放在根文件系统中,我的项目都没有用。