内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

Go語言包管理工具dep怎么用

這篇文章將為大家詳細(xì)講解有關(guān)Go語言包管理工具dep怎么用,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

成都創(chuàng)新互聯(lián)是專業(yè)的加查網(wǎng)站建設(shè)公司,加查接單;提供成都網(wǎng)站制作、做網(wǎng)站,網(wǎng)頁設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行加查網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!

什么是dep?

dep和go,在一定程度上相當(dāng)于maven之于Java,composer之于PHP,dep是go語言官方的一個(gè)包管理工具。

相比較go get而言,dep可以直接給引入的第三方包一個(gè)專門的目錄,并且可以專門制定一個(gè)配置文件,控制go項(xiàng)目所引入的包,版本以及其他依賴關(guān)系。

dep這個(gè)項(xiàng)目放在golang官方的github中:https://github.com/golang/dep

官方對(duì)于dep的解釋是:dep is the official experiment, but not yet the official tool. 也就是說,dep目前還處于試驗(yàn)階段,還并沒有成為一個(gè)官方意義上的工具。畢竟go語言還很年輕,但是這也充分的證明了go語言的生態(tài)圈十分豐富。

安裝

安裝dep工具的方式有很多種,如果是mac電腦的話,只需要如下命令:

brew install dep

對(duì)于Linux和類Unix系統(tǒng)而言,我們還可以使用如下方式安裝dep:

curl https://raw.githubusercontent.com/golang/dep/master/install.sh | sh

或者直接使用源碼安裝。

而對(duì)于windows電腦,可能會(huì)相對(duì)來說麻煩些,我們可以直接使用源碼編譯安裝或者直接使用go get命令安裝:

go get -u github.com/golang/dep/cmd/dep

待安裝完成之后,將dep.exe放在環(huán)境變量就可以使用了。

使用

接下來我們來看一下dep的使用方式。

當(dāng)安裝好dep之后,我們在命令行中,輸入dep就可以看到有關(guān)dep的命令了。

Dep is a tool for managing dependencies for Go projects

Usage: "dep [command]"

Commands:

 init Set up a new Go project, or migrate an existing one
 status Report the status of the project's dependencies
 ensure Ensure a dependency is safely vendored in the project
 version Show the dep version information

Examples:
 dep init  set up a new project
 dep ensure  install the project's dependencies
 dep ensure -update  update the locked versions of all dependencies
 dep ensure -add github.com/pkg/errors add a dependency to the project

Use "dep help [command]" for more information about a command.

我們可以看出來,dep一般進(jìn)場會(huì)使用3個(gè)命令:

init-用來初始化項(xiàng)目

status-用來查看當(dāng)前項(xiàng)目的依賴包的狀態(tài)

ensure-用來同步包的配置文件和引入的包

下面我們正式使用dep來創(chuàng)建一個(gè)項(xiàng)目。首先建立一個(gè)項(xiàng)目路徑,這里我們將項(xiàng)目路徑叫做depProject。然后在項(xiàng)目路徑中建立src源代碼目錄。在src中建立一個(gè)存放dep文件和項(xiàng)目主文件的目錄,我們暫且可以叫做depmain,并建立一個(gè)go文件。

這樣我們的目錄結(jié)構(gòu)如下:

depProject
    |----src
          |----depmain
                  |-----main.go

建立好之后,我們在main.go中寫一個(gè)簡單的go程序:

package main

import (
 "fmt"
)
func main() {
 fmt.Println("hello)
}

之后我們在這個(gè)目錄下運(yùn)行如下命令:

dep init

運(yùn)行完成之后,dep就會(huì)為我們自動(dòng)生成如下文件和目錄:

Go語言包管理工具dep怎么用 

有點(diǎn)像常規(guī)go項(xiàng)目的樣子了,不過需要注意的是pkg中存放的go語言引入包的緩存文件,vendor中存放的是真正的引入的包內(nèi)容。接下來是兩個(gè)文件,Gopkg.lock和Gopkg.toml。Gopkg.lock文件是自動(dòng)生成的,而Gopkg.toml文件是我們可以編輯的文件,通過編輯這個(gè)文件,并運(yùn)行dep的命令可以達(dá)到引入包的目的:

# 必需包
required = ["github.com/gin-gonic/gin"]
# 忽略包
#ignored = []沒有可以不寫
# 項(xiàng)目元數(shù)據(jù)
#[metadata]


# 約束條件
[[constraint]]
 # name = 
 # 可選:版本
 # version =
 # 分支
 # branch
 # 修訂
 # revision
 # 可選:指定來源
 # source = "github.com/gin-gonic/gin"

以上代碼是一個(gè)示例,我們寫好之后運(yùn)行

dep ensure

就可以了,我們會(huì)看到vendor下多了一些有關(guān)此包的依賴和引入。

我們引入了gin框架的包,所以我們現(xiàn)在就可以使用gin框架了,寫的時(shí)候,和我們平時(shí)的go語言項(xiàng)目一樣:

package main

import "github.com/gin-gonic/gin"

func main() {
 r := gin.Default()
 r.GET("/ping", func(c *gin.Context) {
 c.JSON(200, gin.H{
  "message": "pong",
 })
 })
 r.Run() // listen and serve on 0.0.0.0:8080
}

這樣做完全沒有問題,我們只用考慮這個(gè)包原本的路徑github.com/gin-gonic/gin就好。

接下來我們就可以編譯運(yùn)行這個(gè)項(xiàng)目了。

另外需要注意的是,使用dep管理包控制依賴的時(shí)候,如果我們需要新建目錄,并編寫自己的新的包名的時(shí)候,只需要在src下新建目錄就可以了。這樣做才能正確引入。

比如:我們要編寫一個(gè)add的函數(shù),我們可以這樣,在src下簡歷一個(gè)utils目錄,下寫個(gè)add.go文件:

package utils

func Add(a int, b int) int {
 return a+b
}

這樣在主程序中,這樣寫就可以import自己寫的包,并使用自己的函數(shù)了:

package main

import (
 "utils"
 "fmt"
)
func main() {
 fmt.Println("hello")
 utils.Add(1, 1)
}

關(guān)于“Go語言包管理工具dep怎么用”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。

網(wǎng)站題目:Go語言包管理工具dep怎么用
標(biāo)題鏈接:http://www.rwnh.cn/article4/ghcioe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)、關(guān)鍵詞優(yōu)化、品牌網(wǎng)站設(shè)計(jì)、手機(jī)網(wǎng)站建設(shè)微信小程序、移動(dòng)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)
加查县| 镇远县| 集贤县| 读书| 朝阳市| 新疆| 青阳县| 石首市| 凤翔县| 台江县| 台南县| 界首市| 库伦旗| 汪清县| 揭西县| 泰来县| 叙永县| 水城县| 昌乐县| 营山县| 凤山县| 礼泉县| 澎湖县| 惠安县| 扎鲁特旗| 淮滨县| 五家渠市| 梁山县| 通海县| 曲水县| 吴忠市| 永德县| 武鸣县| 绥滨县| 睢宁县| 扎兰屯市| 宁强县| 那曲县| 贵溪市| 驻马店市| 北流市|