- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我确实知道 Go 对于导入来说很古怪,但我已经尝试(我相信)遵循约定,但是我无法导入结构。
项目结构:
/project-name
/parser/main.go
/query/main.go
... Project files in root
我在 /parser/main.go
导出了一个结构:
package parser
type SomeTranslationStuff struct {
ID int `json:"Id"`
Language string `json:"Language"`
}
我希望在 /query/main.go
中导入它。
我是这样做的:
import (
"github.com/org/project-name/parser"
)
它不导入它 - 我遇到了“在 Gopath 中找不到包......”。
我的项目存在于:Users\user\go\src\project-name
。导入的项目(这是同一个项目,通过 go get 从 github 导入)确实存在于 Users\user\go\src\github.com\org\project-name
.. 一切似乎都符合到导入东西的“Go”方式,但它似乎没有导入?
它具体说:
Cannot find package name:
C:\Users\user\go\src\github.com\org\project-name\parser(from $GOPATH)
如果我走那条路,项目就在那里!是什么赋予了?为什么不导入?
最佳答案
一个包有两个东西:
package thename
声明设置的。你应该(这里没有争论)做以下事情:
名称 和导入 路径 的最后一个组件应该匹配。例如。如果导入路径是“sun/moon/stars”而不是包名是“stars”。 (很多人都弄错了,要么将包或文件夹称为 go-stars 之类的东西。不要那样做。)
磁盘上的文件夹结构必须与包的导入路径相匹配。如果您的包的导入路径是“whatever/random/noise”,您必须将它放在 $GOPATH/src/whatever/random/noise 下。或者反过来说:如果你的代码在 $GOPATH/src/ill/do/it/my/own/way 那么包“way”的导入路径是“ill/do/it/my/own/way ".
如果您希望您的包能够go get
将其放置在已知的代码托管上并通过完整的导入路径导入它。可能会限制导入路径。将包“foo”的代码放在 $GOPATH/src/github.com/you/repo/whatever/deep/folder/structure/foo 下并使用 import "github.com/you/repo/whatever/deep/文件夹/结构/foo"
您所有的路径和包名称都应全部小写。
归结为:不要做任何花哨的事情,保持自然。导入路径和文件夹结构必须匹配。
关于即使文件存在,通过 github.com repo 的 Golang 本地导入也不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52254046/
采用这个 repo 结构: Server (main repo) ProjectA (subrepo) SharedLibrary (subrepo) Client (main rep
我们正在尝试使用 https://grails.org/plugin/jms用于 jms 集成。但我们无法解决它。 环顾四周,我能够验证它是否存在于这个 repo 中: http://repo.gra
是否可以在现有的 Mercurial 存储库中创建 Mercurial 存储库? 这个想法是将存储库的子目录作为不同的存储库进行处理,你是如何做到的? 我不是在谈论子存储库(至少,如果我理解子存储库的
这个问题在这里已经有了答案: How do I work with a git repository within another repository? (5 个答案) 关闭 6 年前。 我想克隆
我在尝试让 ssh 在 GIT 中工作时犯了一个灾难性的错误。 我实际上将错误的 url 从服务器复制到该存储库的配置文件中。因此,我放入配置文件的 url 是一个不同但名称相似的 repo。 现在,
我们在 github 上有数百个不再使用的存档库。 默认情况下,Github 上没有 stash 存档仓库的选项。目前,通过 active repos 是不友好的,尤其是在 github 上大量滚动。
在 .repo文件: [centos] name=centos7.2 baseurl=http://10.0.0.1/centos7.2/7.2/xxx/x86_64/ enabled=
一位同事使用 repo start 创建了功能分支 thebranch。现在我想检查这个分支并对其进行处理。我试试这个: repo init -u git@gitserver:manifest.git
我在github上托管了一个项目,结构如下 github.com/example/allpackages . ├── .git └── packages ├── example-1 ├
我在github上托管了一个项目,结构如下 github.com/example/allpackages . ├── .git └── packages ├── example-1 ├
我们可以使用 hg in -vp 将我们的本地仓库与主仓库进行比较。 如何在视觉上做到这一点?我们使用 ExamDiff extension作为我们的 Mercurial 视觉差异工具。我们认为有一种
我有一个 repo 镜像服务器 (myrepo),最初创建它是为了镜像和与远程同步(repoA)。也就是说,我使用了类似下面的东西来创建它。 cd myrepo repo init -u git://
我镜像了https://github.com/boostorg/boost.git使用命令到我自己的存储库: git clone --recursive https://github.com/boos
来自 Viewing Unpushed Git Commits我知道如何区分我自己的 repo 和本地提交: git diff origin/master..HEAD 但是,我怎样才能使用 path/
我已将我的应用程序源 (git repo) 存储在文件夹中: MyProject/front_app 但在 GitHub 上,我希望将存储库命名为 front_app 而不是 my_project_f
我有一个 repo1和 repo2在本地机器上。它们非常相似,但后者是某种其他分支(不再维护 repo1)。 /path/to/repo1 $ git log HEAD~5..HEAD~4 Add:
我在 Mac OS X (10.7.3)、x64 Intel 上更新我的 Android 源代码树时遇到问题。代码是根据 Downloading the Source Tree 安装的, 并且 SE
我有两个位于不同服务器上的存储库,分别称为 repo-1 和 repo-2。 开始两个“树干”是平等的: repo-1/trunk == repo-2/trunk 与此同时,正在向 repo-1/tr
我大约在 6 个月前加入,当我到达时,我的团队没有使用任何形式的版本控制。我已经说服 mgmt 在新项目中使用 Mercurial,所以我们在我们的网络服务器上有以下结构: -MainFolder (
我正在尝试从包含通常结构(分支、标签和主干)的 repoA 迁移到仅在主干中具有子文件夹的现有 RepoB,该 RepoB 在分支、标签和主干中具有项目和代码。 我有一个通过代码创建的转储文件: sv
我是一名优秀的程序员,十分优秀!