go设置多个GOPATH的方式

go设置多个GOPATH

linux:

GOPATH="/home/www/gopath1:/home/www/gopath2"

windows:

GOPATH=f:/gopath1;f:/gopath2;

注意:

go get 时默认安装到第一个GOPATH路径

go build时,有时会报同一种类型或方法不匹配,由于多个是GOPATH路径顺序不对导致的,调换一下顺序即可解决

补充:golang 多个项目时如何配置(使用gb在非GOPATH路径下构建项目)

方案1:将每个项目路径写入GOPATH

写了个脚本SetGoPath.sh

#!/bin/bash
if [[ $GOPATH =~ .*$PWD.* ]]
then
    echo "currnet dir is already in GOPATH"
else
    export GOPATH=$GOPATH:$PWD
    echo "fininsh setting $PWD in GOPATH"
fi

在项目主目录中运行source SetGoPath.sh 将当期项目路径写入GOPATH

方案2:使用gb替代go来构建项目

这个gb就是一个替代go的build 和 test的工具,可以让项目在任意路径时运行构建

github地址:https://github.com/constabula...

首先要把这个gb装到GOPATH的src中。如果GOPATH有多个路径,装到任意一个路径中即可

确保你的GOPATH在PATH中,这样就能全局调用gb命令了

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。

(0)

相关推荐

  • GoPath模式和GoMoudle模式的相爱相杀

    相信看我文章的文章的童鞋,golang版本已经是1.3版本以上.如果你的版本还停留在1.3以下,那这篇文章可以做为你的提升之法. go moudle的前世今生 前世-gopath gopath是什么 GOPATH 是什么,相信已经不用我再多说什么了.大家深受摧残多年,应该已经有所体会.在v.1.11版本之前,安装GO肯定要在环境变量中配置GoPath,我们可以简单的将其理解成是工作目录.目录结构如下 -- bin 存放编译后生成的二进制可执行文件 -- pkg 存放编译后生成的 .a 文件 --

  • Go外部依赖包从vendor,$GOPATH和$GOPATH/pkg/mod查找顺序

    vendor vendor概念最早是由Keith提出,用来存放依赖包.在版本1.5出现.例如gb项目提供了一个名为gsftp的示例项目,它有一个gsftp程序,在标准库之外有三个依赖项.golang.org/x/crypto/ssh, golang.org/x/crypto/ssh/agent和github.com/pkg/sftp. 按vendor概念调整的目录结构如下: $GOPATH | src/ | | github.com/constabulary/example-gsftp/ | |

  • go语言的工作空间和GOPATH环境变量介绍

    go语言并没有强制一定要使用一定的工作空间和项目结构,对于小型的go程序依靠go run等命令就可以直接编译运行. 然而,保持良好的工作空间和文件结构,对于管理源代码和发布程序都是非常有帮助的. 对于大型的go语言项目,工作空间则是一定要的. 1.go语言的工作空间结构 go语言的工作空间其实就是一个文件目录,目录中必须包含src.pkg.bin三个目录. 其中src目录用于存放go源代码,pkg目录用于package对象,bin目录用于存放可执行对象. 使用go的编译命令工具可以将源代码或pa

  • 解析GOROOT、GOPATH、Go-Modules-三者的关系

    一.GOROOT介绍 在安装完Golang语言的时候,所谓的安装路径其实就是你的GOROOT路径,也就是说GOROOT存放的Golang语言内建的程式库的所在位置,而通常你安装完后,你电脑的环境变数就会设好GOROOT路径,当你开发Golang程式的时候,当你import内建的程式库的时候,并不需要额外安装,而当程式运行后,预设也会先去GOROOT路径下寻找相对应的程式库来运行. 1.查看Glang环境变量 go env env中有些是我已经修改过的,通常如果你是初次安装Golang语言并且没做

  • 解决GOPATH在GOLAND中的坑

    首先我的环境已配置好: GO的目录结构是: add.go package calc //函数名必须大写首字母,不然外部包找不到 func Add(a int,b int)(int){ return a+b } sub.go package calc func Sub(a int,b int)(int){ return a-b } 执行文件,main.go package main import "fmt" //导入包路径,这里src省略,默认加在GOPATH import "

  • go设置多个GOPATH的方式

    go设置多个GOPATH linux: GOPATH="/home/www/gopath1:/home/www/gopath2" windows: GOPATH=f:/gopath1;f:/gopath2; 注意: go get 时默认安装到第一个GOPATH路径 go build时,有时会报同一种类型或方法不匹配,由于多个是GOPATH路径顺序不对导致的,调换一下顺序即可解决 补充:golang 多个项目时如何配置(使用gb在非GOPATH路径下构建项目) 方案1:将每个项目路径写入

  • iOS设置圆角的三种方式

    第一种方法:通过设置layer的属性 最简单的一种,但是很影响性能,一般在正常的开发中使用很少. UIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectMake(100, 100, 100, 100)]; //只需要设置layer层的两个属性 //设置圆角 imageView.layer.cornerRadius = imageView.frame.size.width / 2; //将多余的部分切掉 imageView

  • 详解iOS设置字体的三种方式

    有时候项目需要显示一些非系统的字体达到一些UI的效果,目前设置字体有三种方式,默认方式.bundle方式,coreText方式. 1 默认方式 这种方式就是正常的字体设置方式 label.font = [UIFont fontwithname:@"Blazed" size:42]; 至于第一个参数的名字,可以通过以下方法输出所有字体名字列表 [UIFont familyNames] 只要名字列表中存在的,都可以用这种方式关联到对应的字体上. 2 绑定自定义的字体包 其实第二种方式和第一

  • vue-cli中设置publicPath的几种方式对比

    目录 设置publicPath的几种方式对比 publicPath打包设置 vue.config.js publicPath "./" npm run build无效 设置publicPath的几种方式对比 publicPath打包设置 1. 不设置(默认为 publicPath: ‘/’) 或者设置 publicPath: '/' // vue.config.js module.exports = {   publicPath: '/', } html中被打包的css和js路径如下

  • 分享java中设置代理的两种方式

    1 前言 有时候我们的程序中要提供可以使用代理访问网络,代理的方式包括http.https.ftp.socks代理.比如在IE浏览器设置代理. 那我们在我们的java程序中使用代理呢,有如下两种方式.直接上代码. 2 采用设置系统属性 import java.net.Authenticator; import java.net.PasswordAuthentication; import java.util.Properties; public class ProxyDemo1 { public

  • nginx设置资源请求目录的方式详解

    目录 前言 方式1:使用root 案例演示 方式2:使用alias 案例展示 root和alias的区别 总结 前言 开发过程中,在某些场景下,希望某些静态资源文件能够直接通过nginx来访问,比如图片,就可以利用nginx自身的特性设置资源请求目录来满足这个要求 方式1:使用root root :设置请求的根目录 path 为 Nginx 服务器接收到请求以后查找资源的根目录路径 案例演示 如下在nginx的主目录下有一个images的目录,里面有一张图片 下面我们将nginx.conf配置文

  • 关于el-select组件设置默认值的实现方式

    目录 el-select组件设置默认值问题 如何给el-select赋默认值 el-select组件设置默认值问题 最近写项目的时候遇到将el-select组件设置默认值需求,通过查阅资料发现很多是使用v-model来实现的,但是只用v-model可能会有一些小小的问题. 因此根据他们的进行改变了一下 实现方式 el-select组件:    <el-select v-model="templateValue" placeholder="请选择模板" @cha

  • Sleuth+logback 设置traceid 及自定义信息方式

    Sleuth+logback 设置traceid及自定义信息 背景: 分布式系统中,如何快速定位某个用户的请求日志? 使用Sleuth生成的traceid可以跟踪某个请求,但是很多时候我们需要知道traceid 与某个用户的映射关系,方便定位某个用户的日志 方案: @Component @Order(TraceWebServletAutoConfiguration.TRACING_FILTER_ORDER + 1) public class CustomHttpSpanExtractor ext

  • 使用JavaBean根据指定条件设置属性值默认值方式

    目录 JavaBean根据指定条件设置属性值默认值 使用场景 使用范围 使用示例 JavaBean对象成员变量默认值及数组默认值 JavaBean根据指定条件设置属性值默认值 使用场景 当bean数据中已经装配好其他数据,在逻辑以及数据转换完成的最后一步进行数据默认值设置:如果bean的属性较少,可以手动写if条件就行了,如果bean的属性太多,你不希望写太多if的时候,这个方法是很不错的方法: 使用范围 仅限于当前类,不能给父类设置值 也是参考了其他博主的方法,做的优化和修改,由于时间过了很长

  • springboot之端口设置和contextpath的配置方式

    目录 端口设置和contextpath的配置 端口设置 ContextPath配置 Springboot中添加contextPath profile配置 端口设置和contextpath的配置 端口设置 Spring boot 默认端口是8080,如果想要进行更改的话,只需要修改applicatoin.properties文件,在配置文件中加入: server.port= 9090 常用配置: ###################################################

随机推荐