zoukankan      html  css  js  c++  java
  • go项目管理 GOPATH与go mod

    $GOPATH

    • 允许设置多个路径
    • GOPATYH目录结构
      goWorkSpapce //GOPATH目录
      -- bin //编译可执行文件存放的路径,可自动生成
      -- pkg ///.a中间文件存放路径,可自动生成
      -- src //源码路径

    GO get

    • 1.从远程下载需要的包 2.执行go install

    GO install

    • 编译生成可执行文件,放在GOBIN路径下,GOBIN默认是在GOPATH/bin文件夹下

    • 如果不用额外方式改变环境变量(公司目前用的是sh脚本编译),是编译不过的。报错:can’t load package: package .: no buildable Go source files in ***

    编译问题

    • 问题:多个project会导致多个GOPATH目录,而go优先使用第一个GOPATH目录,会导致编译冲突
    • 解决方法
      • 使用如下目录:多个project或工具组件都放在GOPATH的src下

      • 此时GOBIN可以为空

      • GOPATH目录和GOPATH下的src不应该添加到源代码管理中,而是各个project目录myApp1、myApp2、myApp3各自时独立的进行源代码管理

      • goWorkSpace     // goWorkSpace为GOPATH目录
          -- bin
             -- myApp1  // 编译生成
             -- myApp2  // 编译生成
             -- myApp3  // 编译生成
          -- pkg
          -- src
             -- common 1
             -- common 2
             -- common utils ...
             -- myApp1     // project1
                -- models
                -- controllers
                -- others
                -- main.go 
             -- myApp2     // project2
                -- models
                -- controllers
                -- others
                -- main.go 
             -- myApp3     // project3
                -- models
                -- controllers
                -- others
                -- main.go 
        

    go mod包管理

    • 优势:不受GOPATH的限制,可以在任意的文件夹下创建工程
    • 例子:在GoLand中使用go mod模式创建工程,会自动生成go.mod文件,然后就可以正产编译包了

    命令行使用方式

    • 设置变量GO111MODULE为on

    • go mod init + projectname:初始化mod

    • go.mod称为模块根,定义了它所在目录为一个模块

    • 使用go build main.go编译

  • 相关阅读:
    wppay免登录付费查看隐藏内容/付费资源下载
    个人网站html5雪花飘落代码JS特效下载
    HTML5 audio 如何实现播放多个MP3音频
    网站html代码解析
    vue-webpack模板升级到webpack4
    npm安装cnpm
    单个div充满屏幕的CSS方法
    vue监听滚动事件-元素固定位置显示
    HTML5中判断横屏竖屏
    The META for Mobile terminal
  • 原文地址:https://www.cnblogs.com/szxyx/p/15473004.html
Copyright © 2011-2022 走看看