go - Go 不允许建立绝对路径
问题描述
我正在尝试通过 exec.Command 自动化构建,我的命令如下:
exec.Command("/usr/bin/go", "build", "/path/to/my/go/project")
但编译器说
无法导入绝对路径
注意:/path/to/my/go/project
是包含的文件夹go.mod
解决方案
包是相对于导入路径的。没有“绝对”导入的能力。
虽然规范中没有具体说明,但它确实在https://golang.org/ref/spec#ImportPath中提到了它:
ImportPath 的解释取决于实现,但它通常是已编译包的完整文件名的子字符串,并且可能与已安装包的存储库相关。
相对导入和销售可能对您有用(请参阅 GO 1.5 销售实验,现在在 1.6 中可用https://docs.google.com/document/d/1Bz5-UB7g2uPBdOx-rw5t9MxJwkfpx90cqG9AFL0JAYo/edit?pref=2&pli= 1 )
另一种方式:您可以在 cmd.Dir 变量中添加 Working_dir。
cmd := exec.Command("/usr/bin/go", "build")
cmd.Dir = "/path/to/my/go/project"
cmd.Run()
推荐阅读
- amazon-ec2 - 环境变量未在给定路径中创建
- python - 删除熊猫数据框中以非数字开头的列中的记录
- c# - 使用asp.net在数据库中插入数据时如何避免重复值?
- linux - 匹配一个模式并在模式前删除 3 行以及匹配的模式行
- windows - Ansible 2.7.10 与 rabbitmq 3.8.7 通信时出错
- javascript - 我如何拦截 xmlhttprequest 并在请求发送之前进行一些 api 调用
- c++ - 如何使用 CGAL 简化 3d 网格的特定区域
- html - 如何使用休息 API 使请求以角度工作
- java - assertTrue 在 JUnit 测试中给出 NPE,但文件不为空
- node.js - nodejs:未定义数组字符串