我是一名新的golang开发人员,我想知道为什么$GOPATH
需要在项目的根目录设置环境变量。
如果我同时从事多个项目,则每次都需要重新设置$GOPATH
环境变量以指向不同的位置。
在我的设置中,我已$GOPATH
设置为/Users/Projects/go/lib
。这是我所有golang项目的通用目录。
只是为了澄清:将项目数据放入 /Users/Projects/go/<Project Name>
如果$GOPATH
(据我所知)全部用于安装第三方库,那么$GOPATH
为我所有的项目提供一个目录并不安全,因此所有必需的第三方库都安装在同一lib目录中,并且每当我在项目上进行编译时,它只会使用所需的库。
在实践中这不好吗?为什么?
(2018年第二季度:
请注意,对于 vgo项目
,GOPATH
可能最终不赞成使用基于项目的工作流。这样可以避免GOPATH
两年前我在下面提出的基于手动项目的建议)
使用Go 1.11(2018年8月), GOPATH
可以是可选的,带有modules
。
VSCode越来越支持它:
2016年6月:您不必 仅
依赖一个GOPATH
(即一个工作区)。
我的全部GOPATH
内容包括:
goimports
),github.com/smartystreets/goconvey
…),在$HOME/go
例如,src
,pkg
并且bin
会。这是两条路径:
export GOPATH=/path/to/myproject:$HOME/go
为我的所有项目都拥有一个$ GOPATH目录是不安全的,因此所有必需的第三方库都安装在同一个lib目录中,并且每当我编译项目时,它都将使用所需的库。
在实践中这不好吗?为什么?
我不喜欢这种做法,因为不同的项目可能需要同一个库的不同 版本 。
这就是为什么GOPATH
每个项目都有一个,我的构建脚本(随项目版本化)为我设置的原因。
当我克隆我的go项目时,我:
GOPATH
设置为该go项目(本地路径,将安装该项目所需的第三方库,并将其移至vendor
文件夹中),<myproject>/src/<myproject> -> ../..
,因为GOPATH
手段go希望找到myproject
in 的来源src/<apackage>
。该组织:
go get
,GOPATH
。我有:
myproject
mysource.go
apackage
othersource.go
src
myproject -> ../..
vendor
third-party packages
在Windows上,典型的构建脚本为:
λ more b.bat
@echo off
setlocal EnableDelayedExpansion
if not defined GOROOT (
echo Environment variable GOROOT must be defined, with %%GOROOT%%\bin\go.exe
exit /b 1
)
set PATH=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem
set PATH=%PATH%;%GOROOT%/bin
set GOPATH=%~dp0;%HOME%/go
set prjname=%GOPATH:~0,-1%
for %%i in ("%prjname%") do set "prjname=%%~ni"
rem echo prjname='%prjname%'
if not exist src (
mkdir src
)
if not exist src\%prjname% (
mklink /J src\%prjname% %GOPATH%
)
pushd %~dp0
cd src\%prjname%
rem cd
go install
popd
endlocal
克隆我的go项目的任何人都只需键入“ b
”。
问题内容: 我如何通过获得所有声明的方法?如何获取所有声明的字段? 有什么区别,和 另外,对于使用MethodHandle API for Java devloper的 教程,我将不胜感激。我强调,我是在使用静态类型语言的普通Java上编程的,并且我不是JVM开发人员,尤其是我对整个字节码废话(invokedynamic)不感兴趣。我想弄清楚如何使用此新API代替Java Core API。 编辑
各位大佬,我想问一下在开源项目Answer中的几个问题 answer开源项目是否支持LDAP answer开源项目是否支持webhook
问题内容: 我今天发现了JPA 2.0 Criteria API,并想学习它。只是通过一些例子,尝试动手。我的桌上有水果列: ID, 名称, 颜色, 尺寸, 味道。 常规的东西: 如何使用条件构建以下查询: 即如何: 同样,在获取实际数据之前先获取结果计数总是更好的选择。我如何首先获取结果计数? 还有什么地方可以通过几种不同类型的SQL查询获得有关“条件”的更多示例? 问题答案: 首先,您要对实体
关于cesium的一些报错问题,现在出现这些报错 还有上下文丢失的情况,因为不懂cesium,有人帮忙排查下问题吗
我对使用REST API的订阅功能有一些疑问。我们已经使用“快速结账NVP/SOAP集成”实现了定期支付,但对我们来说这不是最佳选择,因为: Webhooks比IPN消息更容易、更可用; 我们不能强迫顾客从PayPal余额中付款。 所以我想用REST API重写。我认为流程会是这样的: < li >用户按下按钮,我们第一次请求获取身份验证令牌; < li >创建计费计划; < li >启用计费计划
根据安装的信息来讲是PIP源安装的问题。目前是国内机器问题。 国内连接默认源会网络不达 在更正一下 debian12系统 第一次在面板上安装才会出现该问题 如果在ssh终端上amh webssh-1.6 install执行一次没有这情况 A大啥是看看能不能加个判断或者相关的解决webssh国内的问题?