gpt4 book ai didi

go - 如何使用 go mod 复制非 go 文件

转载 作者:IT王子 更新时间:2023-10-29 01:14:23 25 4
gpt4 key购买 nike

go mod 不包含 vendor 目录中的非 go 代码。

目前我们使用go和go-oracle连接数据库。我们计划使用 docker,因此想到了使用 go modules 对我们的项目进行版本化的想法。但是由于 go-oracle 有包含 C 代码的子文件夹,它不会从 go 在 pkg 文件夹中创建的 mod 目录中复制过来。有没有办法我们也可以添加非 go 代码?我们确实尝试使用 https://github.com/goware/modvendor但它没有复制非去代码。除非我们没有正确使用它。

package main

import (
"fmt"

"github.com/jmoiron/sqlx"
log "github.com/sirupsen/logrus"
goracle "gopkg.in/goracle.v2"
)

const connectionString = "some connection string"

func main() {
fmt.Print("Inside main")
db, err := sqlx.Connect("goracle", connectionString)
if err != nil {
log.Infof("Could not connect %v%", err)
} else {
db.Query("select 1 from dual")
}

fmt.Println(goracle.DriverName)
}

进入模组初始化去 mod vendor

您会看到代码无法编译。

最佳答案

我认为您的问题是您没有设置 module path为您的包裹。下面详细介绍了我为您构建代码所采取的行动:

在我的 /tmp 文件夹中创建测试包 gomod-test 后,我运行了:

go mod init tmp/gomod-test // <-- this is the module path
go mod vendor

它引入了所需的依赖项,包括 ./vendor/goracle.v2/ 中的 gopkg.in/goracle.v2。然后我能够使用

构建“项目”
go build main.go

关于go - 如何使用 go mod 复制非 go 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54716363/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com