GoLand开发HelloWorld项目(四)

《Go环境变量配置(二)》一文中,我们注意到一个名为GO111MODULE的环境变量,这个变量的出现与Go项目依赖管理方式有关。

在v1.11版本之前,Go项目的创建位置必须在GOPATH\src目录下,项目依赖包没有成熟的管理体系,相同依赖不同版本的包无法区分,依赖基本通过go get命令或者下载依赖源码的方式获取。从v1.11版本开始,go支持go module方式来管理项目的依赖,这有点类似java开发中的maven,但是在实际操作顺序上可能有点不一样。

关于go语言依赖管理的文章可以查看《Go语言包管理简史》《Go包管理的前世今生》

由于实际开发中,读者可能会碰到版本比较老的项目,所以本文将以两种包管理方式分别创建入门项目,而刚好GoLand IDE支持这两种方式来创建项目。

  • 创建GO(GOPATH)项目

打开【File】->【New】->【Project】,选择Go(GOPATH),Location默认是在%GOPATH%\src目录下,点击【Create】按钮,创建的项目下没有任何项目文件。

从GoLand上项目目录可以知道,%GOPATH%\src目录下的源码都可以引用。

在hello1目录下创建main.go文件。右键hello1目录,选择【New】->【Go File】,输入“main”,选择Simple application,因为这是一个程序运行入口文件。

编辑main.go内容如下:

package main

import "fmt"

func main() {
    fmt.Println("Hello world!")
}

上述代码没有引用第三方的依赖包,所以无法感觉GOPATH依赖管理方式的不便性。接下来我们对main.go进行修改,内容如下:

package main

import (
    "fmt"
    "rsc.io/quote"
)

func main() {
    fmt.Println("Hello world!", quote.Hello())
}

上述代码我们应用"rsc.io/quote"第三方依赖包,但是由于我们本地依赖库没有对应的依赖包,所以该程序会出现编译错误提示。接下来我们需要手动下载quote依赖,有两种方式:

(1)使用go get -u rsc.io/quote命令下载

(2)使用git clone下载quote的源码到%GOPATH%\src\rsc.io目录

但是这两种方法都无法将间接依赖下载下来,意味着我们需要不停的下载当前未知的间接依赖,简直痛不欲生的体验。以此,这种构建项目的方式不再过多介绍了。

  • 创建GO(GO MODULE)项目

打开【File】->【New】->【Project】,选择Go,Location可以选择任何目录(这也是采用GO MODULE模式的一个好处),设置好GOPROXY环境变量。

点击【create】按钮创建成功之后,默认项目下生成一个go.mod文件,这个文件类似Java工程中pom.xml文件。文件内容如下:

module hello1
go 1.20

由于需要使用quote依赖包编写,所以先在go.mod文件中增加依赖如下:

module hello1
go 1.20
require rsc.io/quote v1.5.2

然后在GoLand的Terminal终端上的hello1目录下,执行go get -u rsc.io/quote@v1.5.2命令,该操作不但能下载quote依赖以及它本身的其他依赖,同时也会改变go.mod文件的内容,如下:

module hello1
go 1.20
require rsc.io/quote v1.5.2
require (
    golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c // indirect    
    rsc.io/sampler v1.3.0 // indirect
)

rsc.io/quote为项目直接依赖,golang.org/x/text和rsc.io/sampler为间接依赖。这里完全体现了GO MODULE模式的优越性。

在hello1目录下创建hello.go文件,输入内容:

package main

import (
    "fmt"
    "rsc.io/quote"
)

func main() {
    fmt.Println("Hello world!", quote.Hello())
}

此时,这段代码在IDE中是没有编译错误提示的,这段代码可以直接运行,至于如何调试和运行,下一篇文章来介绍,感谢读者跟帖学习。想学习更多Go开发知识,请看《Go学习导读》

在go项目开发中,可能需要搜索相关依赖已经该依赖的下载地址,本文附go依赖查询网站地址:Go Packages - Go Packages

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

萧十一郎君

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值