zoukankan      html  css  js  c++  java
  • 使用 dep 配置 golang 开发环境

    概要

    golang 的包管理一直没有官方统一的解决方案,因此也产生了很多非官方的包管理工具。 之前我一直使用的 gb(https://getgb.io/) 能够很好的隔开各个 golang 工程,当时 gb 创建的工程不太融入已有的 GOPATH 中。 gb 相当于是把工程的目录作为 GOPATH,并且它的 vendor 目录也和 golang 自己的 vendor 不太一样。

    dep 的 Roadmap 中已经制定了成为 golang 官方包管理工具的计划, 所以,使用 dep 来组织自己的 golang 项目以后能够更好的和其他 golang 项目结合。

    配置

    golang 的配置

    我的 golang 的配置主要分 3 块:

    • GOROOT: 用于存放 golang 本身,更新 golang 版本时,只要更新这个就行

    • GOPATH: 用于存放 golang 的工具(gofmt,gocode 等等)

    • GOPROJECTS:用于存放各种 golang 项目

      export GOROOT=/usr/local/go
      export GOPROJECTS=/path/to/goprojects
      export GOPATH=/path/to/gopath
      export PATH=$PATH:$GOROOT/bin:$GOPATH/bin:$GOPROJECTS/bin

      export GOPATH=$GOPATH:$GOPROJECTS

    go project 的配置

    在 $GOPROJECTS/src 下创建自己的 golang 项目

    cd $GOPROJECTS/src
    mkdir myGolangProject
    cd myGolangProject
    
    touch main.go
    # write some golang code in main.go
    
    dep init
    dep ensure  # add dependencies for main.go
    
    go install  # compile myGolangProject
    

    myGolangProject 可以作为一个 git 仓库提交到远程的 git 仓库,以便于和其他人分享

    总结

    其实很多 golang 的包管理工具都不错,甚至不用包管理工具,通过合理的划分 GOPATH 也可以达到 golang 项目管理的目的。 使用 dep,一方面是因为它以后很有可能会成为 golang 的官方包管理工具,另一方面也是为了更好的分享 golang 代码, 毕竟通过 dep,别人可以一键安装所有依赖,避免写很多安装说明的文档。

  • 相关阅读:
    [BZOJ2212][POI2011]Tree Rotations(线段树合并)
    [BZOJ3569]DZY Loves Chinese II(随机化+线性基)
    [BZOJ3237][AHOI2013]连通图(分治并查集)
    [BZOJ4945][NOI2017]游戏(2-SAT)
    [BZOJ4568][SCOI2016]幸运数字(倍增LCA,点分治+线性基)
    [BZOJ2460][BJOI2011]元素(线性基)
    [BZOJ4942][NOI2017]整数(线段树+压位)
    [P2023][AHOI2009]维护序列(线段树)
    [HDU4336]Card Collector(min-max容斥,最值反演)
    [COGS2426][HZOI 2016]几何
  • 原文地址:https://www.cnblogs.com/wang_yb/p/7535424.html
Copyright © 2011-2022 走看看