go - Jenkins 为 Go 项目build设置

标签 go jenkins jenkins-plugins

我们计划为 Go 项目设置 Jenkin 构建过程。我在 jenkins 中设置自定义工作区并从“全局工具配置”安装 go1.6。

我在执行 go build 时收到错误消息 下面是GOPATH和GOROOT

GOPATH /var/lib/jenkins/workspace/project/go
GOROOT  /var/lib/jenkins/workspace

ain.go:20:2: cannot find package "bytes" in any of:
    /var/lib/jenkins/workspace/src/pkg/bytes (from $GOROOT)
    /var/lib/jenkins/workspace/project/go/src/bytes (from $GOPATH)

我在这里缺少什么?..感谢您的帮助..

最佳答案

除了让 Go 插件处理您的 GOROOT 之外,在获取依赖项时,GOPATH 也有一些细微差别。我们将 *.go 源文件放在 Git 存储库的根目录中,因此可以通过 Dev 桌面上的 go 命令轻松管理它们。因此,我使用构建脚本通过符号链接(symbolic link)欺骗 Go 认为/src/main 下有一个名为 main 的包,这样我就可以使用相同的脚本来构建我所有的 go 包并拉取依赖项。这是我的构建脚本:

#!/usr/bin/bash 导出 GOPATH=$WORKSPACE mkdir -p $GOPATH/源代码 ln -f -s $WORKSPACE $GOPATH/src/main 去获得主要 CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o main main

关于go - Jenkins 为 Go 项目build设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37262712/

相关文章:

regex - Golang : extract data with Regex

go - 我如何绕过没有参数多态性的 Go?

ruby - 通过Jenkins上的嵌套Docker容器进行端口转发

jenkins - 通过rest xml api创建带有私钥凭据的jenkins ssh用户名

Jenkins Git Changelog 插件

Jenkins - 在不同时间触发不同的插件,独立于构建

json - 编码后删除转义字符

Golang 结构/接口(interface)

Mercurial 变更组 Hook : repository URL

Jenkins 无法识别 git 二进制文件