美文网首页干货
如何创建自己 module

如何创建自己 module

作者: zhangPeng丶 | 来源:发表于2021-10-25 08:18 被阅读0次

    我们为什么要创建自己的 module?原因有二:

    1. 不用再一遍又一遍的写重复代码
    2. 可以持续迭代优化我们写出的代码

    希望在阅读本篇文章后,您可以成功创建出自己的 module

    创建 mymodule

    1. GitHub 中创建一个仓库 mymodule,然后 clone 到本地

      $ git clone git@github.com:gh-zhangpeng/mymodule.git
      
    2. 进入我们刚刚 clone 下来的仓库中

      $ cd mymodule && vim hello.go
      
    3. 编写我们需要放入 module 中的代码

      package mymodule
      
      import (
          "fmt"
      )
      
      func Hello(name string) string {
          return fmt.Sprintf("Hello, %s", name)
      }
      
    4. 生成 go.mod 文件

      使用我们在第一步中创建的仓库,生成我们 mymodulego.mod

      $ go mod init github.com/gh-zhangpeng/mymodule
      

      生成后的文件内容如下:

      module github.com/gh-zhangpeng/mymodule
      
      go 1.16
      
    5. 将我们的刚刚编写的代码提交到 github

      $ git add . && git commit -m "init mymodule" && git push
      

    代码推送成功后,mymodule 就已经创建完成了。

    使用 mymodule

    进入一个使用 go mod 进行包管理的项目,使用 go get 命令将 mymodule 包添加到依赖中,然后我们就可以使用 mymodule 包中的代码了。

    1. 在项目中添加 mymodule 的依赖

      $ go get github.com/gh-zhangpeng/mymodule
      go: downloading github.com/gh-zhangpeng/mymodule v0.0.0-20211019160614-87837bdd5f7a
      

      此时查看 go.mod 文件,可以看到文件内多了一行 mymodule 的依赖。表示当前项目依赖 mymodulev0.0.0-20211019160614-87837bdd5f7a 版本

      require github.com/gh-zhangpeng/mymodule v0.0.0-20211019160614-87837bdd5f7a // indirect
      
    2. 使用 mymodule 中的方法

      package main
      
      import (
          "fmt"
      
          "github.com/gh-zhangpeng/mymodule"
      )
      
      func main() {
          fmt.Println(mymodule.Hello("jack"))
      }
      

    创建版本

    当有了稳定的或者准备长期使用的 module 后,我们就可以为它创建一个版本。module 的版本是由 gittag 控制的,因此我们在代码仓库中添加 tag

    $ git tag v1.0.0
    $ git push --tags
    

    现在我们将 go.mod 中依赖的 mymodule 的版本改为 v1.0.0。然后执行下面的代码,这样就将项目中依赖的 mymodule 版本设置为 v1.0.0

    $ go get github.com/gh-zhangpeng/mymodule
    

    go module 的版本号规范可以参考 Module version numbering 这篇文章,在此就不多做赘述了。

    最后

    看到文章这个位置,您应该已经使用上了自己创建的 module 了。如果还没有,欢迎留言~

    相关文章

      网友评论

        本文标题:如何创建自己 module

        本文链接:https://www.haomeiwen.com/subject/lzljaltx.html