当我尝试使用 CodeBuild golang 映像 1.10 构建我的 golang 项目时,它失败了,无法找到子包。一些背景:
该应用程序的组织如下:
/go/src/company/app
/go/src/company/app/sub1
/go/src/company/app/sub2
etc...
这在我的开发机器上构建良好。但是,当通过 codebuild 拉取时,它会被拉入不同的目录 ( /codebuild/output/srcNNN/src/<some path>),其中<some path>根据触发构建的内容而有所不同。
我最初是通过将代码从它被拉到 golang 目录 ( /codebuild/output/srcNNN) 复制它来工作的,但是由于目录的 CodeBuild 环境变量在前面GOPATH插入 /go: ( ),我使用了观察到的 ../ /go:/codebuild/output/srcNNN../... 复制。但是,一旦我以不同的方式触发构建,这很丑陋并且失败了。
我的问题是是否有一种好的方法可以使它正常工作?我的下一个想法是将字符串操作应用于观察到的路径并复制到那里以获得(希望)更高的可靠性。但这只有在GOPATH符合我的假设的情况下才有效。
任何想法,将不胜感激。
澄清:在代码中导入包时,外部包的导入方式如下:
import (
"context"
...
}
子包未显式导入,但在部署代码时发现,如上所示 ( /go/src/company/app)。但是,AWS CodeBuild 不会以这种方式引入代码。
慕勒3428872
长风秋雁
相关分类