当前位置: 首页 > 面试题库 >

从基于GOPATH的dep迁移到mod时,格式错误的模块路径“ xxxx / xxxx / uuid”在第一个路径元素中缺少点

时才俊
2023-03-14
问题内容
$ go版本
1.13.3

我的文件夹结构如下:

GOPATH
+---src
     +--- my-api-server
           +--- my-auth-server
                 +--- main.go
           +--- my-utils
                 +--- uuid
                       +--- uuid.go

my-auth-server使用my-api-server/my-utils/uuid作为depenency

现在,当我使用基于GOPATH的模块系统时,它可以正常工作。但是当使用go模块时,当我go run main.gomy-auth- server其中运行时返回错误:

build command-line-arguments: cannot load my-api-server/my-utils/uuid: malformed module path "my-api-server/my-utils/uuid": missing dot in first path element

知道如何解决这个问题吗?


问题答案:

go.mod文件应位于项目的根目录(在本例中为my-api-server/go.mod)。

模块路径的第一部分应该是域/路径。例如,完整路径可能是github.com/your-github-username/my-api- server。您看到的错误是因为第一部分不是域(带有句点)。您不必发布模块来开发它,但是您需要使用适当的域名。

一旦有了模块路径,就可以使用完整的模块路径+“ /” +软件包的相对路径来导入该模块中包含的软件包。例如,

import "github.com/your-github-username/my-api-server/my-utils/uuid"

由于main.gouuid包含在同一模块中,因此不需要requirego.mod文件中声明即可使用uuid包。您可以像导入其他任何软件包一样将其导入,它将起作用。

我建议使用go build并运行生成的可执行文件,而不要使用go run来确保在构建过程中包括了所有需要的文件。

有关如何使用Go模块的演练,请参见https://blog.golang.org/using-go-
modules
,包括该系列文章中的第二篇有关如何将项目转换为使用模块的文章。



 类似资料:
  • 我看到了类似的问题,但找不到解决办法,也许是因为我的webpack.config.js不同。重要的是要注意,我只得到这个问题在MacOS上执行"webpack--disport-erm-详情"的文件夹的根webpack.config.js. 完整的源代码在这里 网页包。配置。js 包裹json 完全错误 未找到输入模块中的错误:错误:无法在“/Users/Marvs/source/accountg

  • 在docker容器中部署应用程序时,我无法使用Spring Boot实现liquibase迁移。我有一个胖罐子,它是在docker图像创建时提取的。 我有一个单独的模块,保存迁移文件。我能装上主机。xml: 然后它继续并加载其余的资源。问题在于然后从加载的资源中提取仍然正常的实际路径: 但是接下来做一些路径操作,结果是: 这反过来又不是有效的类路径: 我需要(类路径)或以能够读取文件。但它总是以上

  • 问题内容: 我目前正在使用Dep,并且想开始使用Go模块。 我该如何迁移? 问题答案: 从Dep迁移到Go Modules非常容易。 运行并确保您使用的是Go 1.11版或更高版本。 将代码移到GOPATH或set之外。 :这将从Gopkg.lock导入依赖项。 :这将删除不必要的导入,并添加间接导入。 (可选)删除您的供应商文件夹(或移至回收站) :进行测试构建以查看其是否有效。 :删除用于De

  • 是否有任何方法可以写入JSON路径,以基于前一个元素获取数组中下一个元素的值? JSON: 预期: 路径:$[0][如果匹配搜索文本]下一个|上一个 搜索文本:text 1输出(获取下一个值):值12输出(获取前一个值):值11 Searchtext:text2输出(获取下一个值):value22输出(获取上一个值):value21 我在用https://github.com/jayway/Jso

  • 我的目标是开发一个单一的骆驼路线来映射这些服务器,接受路径中服务器的名称。类似于这样: 我的(简化且不起作用)Blueprint.xml: 问题是,我不知道如何从路径中移除/center、/north或/south,因此头部被传递给目标服务,而目标服务不知道如何处理它。调用:

  • 我有一个用Java8写的项目,我想把它更新到Java9。所以我把这些类分成了两个独立的模块。模块: 和目录中的。在我开始更新到Java9之前,它的构建是用Gradle自动化的。该模块使用模块中包含的抽象类实现。 在目录 中的 。我想使用Maven自动构建它。模块需要模块。 文件树类似于: 或 base/src/main/java/org/ggp/base/validator/opnfvalidat