簡體   English   中英

如何提供 go 本地包的版本號以在 `go.mod` 文件中提及

[英]How to provide version number for go local packages to mention in `go.mod` file

我的意圖是在 go.mod 文件中提及本地 package ,但停留在 package 版本部分。 (Go 版本為go1.14.4 linux/amd64

錯誤:

arun@debian:~/experiments$ go build
go: errors parsing go.mod:
/home/arun/experiments/go.mod:8: usage: require module/path v1.2.3

如果盲目地給出版本號(例如: github.com/kcarun/local_pkg/app v1.2.3中的go.mod ,它會給出未知版本錯誤)同時執行go build

go.mod

module github.com/kcarun/gitlandfill

go 1.14

replace github.com/kcarun/local_pkg/ => /home/arun/experiments/local_pkg/

require (
        github.com/kcarun/local_pkg/app
)

main.go

package main

import "fmt"
import "local_pkg"

func main(){
        fmt.Println("Ok")
        app.SayHello()
}

app.go

package app

import "fmt"

func SayHello(){
        fmt.Println("Is working!!")
}

目錄結構:

arun@debian:~/experiments$ pwd
/home/arun/experiments
arun@debian:~/experiments$ tree
.
|-- go.mod
|-- local_pkg
|   `-- app.go
`-- main.go

將“本地” package 導入為的正確方法

.
├── go.mod
├── local_pkg
│   └── app.go
└── main.go

package main

import "fmt"
import "github.com/kcarun/gitlandfill/local_pkg"

func main(){
    fmt.Println("Ok")
    local_pkg.SayHello()
}

,沒有在go.mod中聲明:

module github.com/kcarun/gitlandfill

go 1.14

如果package聲明與目錄名稱不同(例如: dir 是/home/arun/experiments/local_pkg和 pages 是app ),你應該導入 package 使用目錄名稱,但調用它使用 ZEFE4B07A8E6034A7F67

package main

import "fmt"
import "github.com/kcarun/gitlandfill/local_pkg"

func main(){
    fmt.Println("Ok")
    app.SayHello()
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM