不怕慢就怕站 發表於 2020-12-2 14:50:00

go中开启 go module

<p>&nbsp;</p>
<p>&nbsp;</p>
<p>如果不设置,直接使用命令创建会报错,如下:</p>
<p>&nbsp;</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 255, 1)">go</span>: modules disabled inside GOPATH<span style="color: rgba(128, 128, 128, 1)">/</span>src <span style="color: rgba(0, 0, 255, 1)">by</span> GO111MODULE<span style="color: rgba(128, 128, 128, 1)">=</span>auto; see <span style="color: rgba(255, 0, 0, 1)">'</span><span style="color: rgba(255, 0, 0, 1)">go help mod</span></pre>
</div>
<p>&nbsp;</p>
<h3>01、配置GO111MODULE=on环境变量:配置后,<span style="color: rgba(255, 0, 0, 1)">最好是重启一下电脑,以免没有生效,搞得自己很烦。</span></h3>
<p>&nbsp;</p>
<p><img src="https://img2020.cnblogs.com/blog/1368961/202012/1368961-20201202144838980-1974867635.png" alt="" width="983" height="585" loading="lazy"></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<h3>02、使用命令:go mod init&nbsp; &nbsp;</h3>
<p>&nbsp;<img src="https://img2020.cnblogs.com/blog/1368961/202012/1368961-20201202145444184-1130595588.png" alt="" loading="lazy"></p>
<p>&nbsp;</p>
<h3>&nbsp;03、在go.mod文件中添加require:</h3>
<p><img src="https://img2020.cnblogs.com/blog/1368961/202012/1368961-20201202153836060-1753241597.png" alt="" loading="lazy"></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<h3>04、在项目中执行命令:go mod download,执行后会生成go.sum文件:</h3>
<div class="cnblogs_code">
<pre> D:\<span style="color: rgba(0, 0, 255, 1)">Go</span>\src\apple<span style="color: rgba(128, 128, 128, 1)">&gt;</span><span style="color: rgba(0, 0, 0, 1)">
PS D:\</span><span style="color: rgba(0, 0, 255, 1)">Go</span>\src\apple<span style="color: rgba(128, 128, 128, 1)">&gt;</span> <span style="color: rgba(0, 0, 255, 1)">go</span><span style="color: rgba(0, 0, 0, 1)"> mod download
</span><span style="color: rgba(0, 0, 255, 1)">go</span>: finding gopkg.<span style="color: rgba(128, 128, 128, 1)">in/</span>yaml.v2 v2.<span style="color: rgba(128, 0, 0, 1); font-weight: bold">2.2</span>
<span style="color: rgba(0, 0, 255, 1)">go</span>: finding github.com<span style="color: rgba(128, 128, 128, 1)">/</span>google<span style="color: rgba(128, 128, 128, 1)">/</span>btree v0.<span style="color: rgba(128, 0, 0, 1); font-weight: bold">0.0</span><span style="color: rgba(128, 128, 128, 1)">-</span><span style="color: rgba(128, 0, 0, 1); font-weight: bold">20180813153112</span><span style="color: rgba(128, 128, 128, 1)">-</span><span style="color: rgba(0, 0, 0, 1)">4030bb1f1f0c
</span><span style="color: rgba(0, 0, 255, 1)">go</span>: finding github.com<span style="color: rgba(128, 128, 128, 1)">/</span>google<span style="color: rgba(128, 128, 128, 1)">/</span>pprof v0.<span style="color: rgba(128, 0, 0, 1); font-weight: bold">0.0</span><span style="color: rgba(128, 128, 128, 1)">-</span><span style="color: rgba(128, 0, 0, 1); font-weight: bold">20181206194817</span><span style="color: rgba(128, 128, 128, 1)">-</span><span style="color: rgba(0, 0, 0, 1)">3ea8567a2e57
</span><span style="color: rgba(0, 0, 255, 1)">go</span>: finding golang.org<span style="color: rgba(128, 128, 128, 1)">/</span>x<span style="color: rgba(128, 128, 128, 1)">/</span><span style="color: rgba(0, 0, 255, 1)">text</span> v0.<span style="color: rgba(128, 0, 0, 1); font-weight: bold">3.1</span><span style="color: rgba(128, 128, 128, 1)">-</span><span style="color: rgba(128, 0, 0, 1); font-weight: bold">0.20180807135948</span><span style="color: rgba(128, 128, 128, 1)">-</span><span style="color: rgba(0, 0, 0, 1)">17ff2d5776d2
</span><span style="color: rgba(0, 0, 255, 1)">go</span>: finding golang.org<span style="color: rgba(128, 128, 128, 1)">/</span>x<span style="color: rgba(128, 128, 128, 1)">/</span>sync v0.<span style="color: rgba(128, 0, 0, 1); font-weight: bold">0.0</span><span style="color: rgba(128, 128, 128, 1)">-</span><span style="color: rgba(128, 0, 0, 1); font-weight: bold">20190227155943</span><span style="color: rgba(128, 128, 128, 1)">-</span><span style="color: rgba(0, 0, 0, 1)">e225da77a7e6
</span><span style="color: rgba(0, 0, 255, 1)">go</span>: finding golang.org<span style="color: rgba(128, 128, 128, 1)">/</span>x<span style="color: rgba(128, 128, 128, 1)">/</span>oauth2 v0.<span style="color: rgba(128, 0, 0, 1); font-weight: bold">0.0</span><span style="color: rgba(128, 128, 128, 1)">-</span><span style="color: rgba(128, 0, 0, 1); font-weight: bold">20190226205417</span><span style="color: rgba(128, 128, 128, 1)">-</span><span style="color: rgba(0, 0, 0, 1)">e64efc72b421
</span><span style="color: rgba(0, 0, 255, 1)">go</span>: finding <span style="color: rgba(0, 0, 255, 1)">go</span>.opencensus.io v0.<span style="color: rgba(128, 0, 0, 1); font-weight: bold">20.1</span>
<span style="color: rgba(0, 0, 255, 1)">go</span>: finding golang.org<span style="color: rgba(128, 128, 128, 1)">/</span>x<span style="color: rgba(128, 128, 128, 1)">/</span><span style="color: rgba(255, 0, 255, 1)">exp</span> v0.<span style="color: rgba(128, 0, 0, 1); font-weight: bold">0.0</span><span style="color: rgba(128, 128, 128, 1)">-</span><span style="color: rgba(128, 0, 0, 1); font-weight: bold">20190121172915</span><span style="color: rgba(128, 128, 128, 1)">-</span><span style="color: rgba(0, 0, 0, 1)">509febef88a4
</span><span style="color: rgba(0, 0, 255, 1)">go</span>: finding google.golang.org<span style="color: rgba(128, 128, 128, 1)">/</span>grpc v1.<span style="color: rgba(128, 0, 0, 1); font-weight: bold">19.0</span>
<span style="color: rgba(0, 0, 255, 1)">go</span>: finding golang.org<span style="color: rgba(128, 128, 128, 1)">/</span>x<span style="color: rgba(128, 128, 128, 1)">/</span>lint v0.<span style="color: rgba(128, 0, 0, 1); font-weight: bold">0.0</span><span style="color: rgba(128, 128, 128, 1)">-</span><span style="color: rgba(128, 0, 0, 1); font-weight: bold">20190301231843</span><span style="color: rgba(128, 128, 128, 1)">-</span><span style="color: rgba(0, 0, 0, 1)">5614ed5bae6f
</span><span style="color: rgba(0, 0, 255, 1)">go</span>: finding golang.org<span style="color: rgba(128, 128, 128, 1)">/</span>x<span style="color: rgba(128, 128, 128, 1)">/</span>sync v0.<span style="color: rgba(128, 0, 0, 1); font-weight: bold">0.0</span><span style="color: rgba(128, 128, 128, 1)">-</span><span style="color: rgba(128, 0, 0, 1); font-weight: bold">20181221193216</span><span style="color: rgba(128, 128, 128, 1)">-</span><span style="color: rgba(0, 0, 0, 1)">37e7f081c4d4
</span><span style="color: rgba(0, 0, 255, 1)">go</span>: finding github.com<span style="color: rgba(128, 128, 128, 1)">/</span>golang<span style="color: rgba(128, 128, 128, 1)">/</span>protobuf v1.<span style="color: rgba(128, 0, 0, 1); font-weight: bold">2.0</span>
<span style="color: rgba(0, 0, 255, 1)">go</span>: finding github.com<span style="color: rgba(128, 128, 128, 1)">/</span>googleapis<span style="color: rgba(128, 128, 128, 1)">/</span>gax<span style="color: rgba(128, 128, 128, 1)">-</span><span style="color: rgba(0, 0, 255, 1)">go</span><span style="color: rgba(128, 128, 128, 1)">/</span>v2 v2.<span style="color: rgba(128, 0, 0, 1); font-weight: bold">0.4</span>
<span style="color: rgba(0, 0, 255, 1)">go</span>: finding github.com<span style="color: rgba(128, 128, 128, 1)">/</span>apache<span style="color: rgba(128, 128, 128, 1)">/</span>thrift v0.<span style="color: rgba(128, 0, 0, 1); font-weight: bold">12.0</span>
<span style="color: rgba(0, 0, 255, 1)">go</span>: finding github.com<span style="color: rgba(128, 128, 128, 1)">/</span>golang<span style="color: rgba(128, 128, 128, 1)">/</span>mock v1.<span style="color: rgba(128, 0, 0, 1); font-weight: bold">2.0</span>
<span style="color: rgba(0, 0, 255, 1)">go</span>: finding honnef.co<span style="color: rgba(128, 128, 128, 1)">/</span><span style="color: rgba(0, 0, 255, 1)">go</span><span style="color: rgba(128, 128, 128, 1)">/</span>tools v0.<span style="color: rgba(128, 0, 0, 1); font-weight: bold">0.0</span><span style="color: rgba(128, 128, 128, 1)">-</span><span style="color: rgba(128, 0, 0, 1); font-weight: bold">20190106161140</span><span style="color: rgba(128, 128, 128, 1)">-</span><span style="color: rgba(0, 0, 0, 1)">3f1c8253044a
</span><span style="color: rgba(0, 0, 255, 1)">go</span>: finding cloud.google.com<span style="color: rgba(128, 128, 128, 1)">/</span><span style="color: rgba(0, 0, 255, 1)">go</span> v0.<span style="color: rgba(128, 0, 0, 1); font-weight: bold">34.0</span>
<span style="color: rgba(0, 0, 255, 1)">go</span>: finding golang.org<span style="color: rgba(128, 128, 128, 1)">/</span>x<span style="color: rgba(128, 128, 128, 1)">/</span>net v0.<span style="color: rgba(128, 0, 0, 1); font-weight: bold">0.0</span><span style="color: rgba(128, 128, 128, 1)">-</span><span style="color: rgba(128, 0, 0, 1); font-weight: bold">20180826012351</span><span style="color: rgba(128, 128, 128, 1)">-</span><span style="color: rgba(0, 0, 0, 1)">8a410e7b638d
</span><span style="color: rgba(0, 0, 255, 1)">go</span>: finding golang.org<span style="color: rgba(128, 128, 128, 1)">/</span>x<span style="color: rgba(128, 128, 128, 1)">/</span>net v0.<span style="color: rgba(128, 0, 0, 1); font-weight: bold">0.0</span><span style="color: rgba(128, 128, 128, 1)">-</span><span style="color: rgba(128, 0, 0, 1); font-weight: bold">20190108225652</span><span style="color: rgba(128, 128, 128, 1)">-</span><span style="color: rgba(0, 0, 0, 1)">1e06a53dbb7e
</span><span style="color: rgba(0, 0, 255, 1)">go</span>: finding honnef.co<span style="color: rgba(128, 128, 128, 1)">/</span><span style="color: rgba(0, 0, 255, 1)">go</span><span style="color: rgba(128, 128, 128, 1)">/</span>tools v0.<span style="color: rgba(128, 0, 0, 1); font-weight: bold">0.0</span><span style="color: rgba(128, 128, 128, 1)">-</span><span style="color: rgba(128, 0, 0, 1); font-weight: bold">20190102054323</span><span style="color: rgba(128, 128, 128, 1)">-</span><span style="color: rgba(0, 0, 0, 1)">c2f93a96b099
</span><span style="color: rgba(0, 0, 255, 1)">go</span>: finding github.com<span style="color: rgba(128, 128, 128, 1)">/</span>google<span style="color: rgba(128, 128, 128, 1)">/</span>martian v2.<span style="color: rgba(128, 0, 0, 1); font-weight: bold">1.0</span><span style="color: rgba(128, 128, 128, 1)">+</span><span style="color: rgba(0, 0, 0, 1)">incompatible
</span><span style="color: rgba(0, 0, 255, 1)">go</span>: finding github.com<span style="color: rgba(128, 128, 128, 1)">/</span>google<span style="color: rgba(128, 128, 128, 1)">/</span><span style="color: rgba(0, 0, 255, 1)">go</span><span style="color: rgba(128, 128, 128, 1)">-</span>cmp v0.<span style="color: rgba(128, 0, 0, 1); font-weight: bold">2.0</span>
<span style="color: rgba(0, 0, 255, 1)">go</span>: finding github.com<span style="color: rgba(128, 128, 128, 1)">/</span>hashicorp<span style="color: rgba(128, 128, 128, 1)">/</span>golang<span style="color: rgba(128, 128, 128, 1)">-</span>lru v0.<span style="color: rgba(128, 0, 0, 1); font-weight: bold">5.0</span>
<span style="color: rgba(0, 0, 255, 1)">go</span>: finding golang.org<span style="color: rgba(128, 128, 128, 1)">/</span>x<span style="color: rgba(128, 128, 128, 1)">/</span>oauth2 v0.<span style="color: rgba(128, 0, 0, 1); font-weight: bold">0.0</span><span style="color: rgba(128, 128, 128, 1)">-</span><span style="color: rgba(128, 0, 0, 1); font-weight: bold">20180821212333</span><span style="color: rgba(128, 128, 128, 1)">-</span><span style="color: rgba(0, 0, 0, 1)">d2e6202438be
</span><span style="color: rgba(0, 0, 255, 1)">go</span>: finding golang.org<span style="color: rgba(128, 128, 128, 1)">/</span>x<span style="color: rgba(128, 128, 128, 1)">/</span>sys v0.<span style="color: rgba(128, 0, 0, 1); font-weight: bold">0.0</span><span style="color: rgba(128, 128, 128, 1)">-</span><span style="color: rgba(128, 0, 0, 1); font-weight: bold">20180830151530</span><span style="color: rgba(128, 128, 128, 1)">-</span><span style="color: rgba(0, 0, 0, 1)">49385e6e1522
</span><span style="color: rgba(0, 0, 255, 1)">go</span>: writing stat cache: rename D:\<span style="color: rgba(0, 0, 255, 1)">Go</span>\pkg\mod\cache\download\golang.org\x\sys\<span style="color: rgba(0, 128, 0, 1)">@v</span>\v0.<span style="color: rgba(128, 0, 0, 1); font-weight: bold">0.0</span><span style="color: rgba(128, 128, 128, 1)">-</span><span style="color: rgba(128, 0, 0, 1); font-weight: bold">20180830151530</span><span style="color: rgba(128, 128, 128, 1)">-</span>49385e6e1522.info689223850.tmp <br>    D:\<span style="color: rgba(0, 0, 255, 1)">Go</span>\pkg\mod\cache\download\golang.org\x\sys\<span style="color: rgba(0, 128, 0, 1)">@v</span>\v0.<span style="color: rgba(128, 0, 0, 1); font-weight: bold">0.0</span><span style="color: rgba(128, 128, 128, 1)">-</span><span style="color: rgba(128, 0, 0, 1); font-weight: bold">20180830151530</span><span style="color: rgba(128, 128, 128, 1)">-</span>49385e6e1522.info: Access <span style="color: rgba(0, 0, 255, 1)">is</span><span style="color: rgba(0, 0, 0, 1)"> denied.
</span><span style="color: rgba(0, 0, 255, 1)">go</span>: finding github.com<span style="color: rgba(128, 128, 128, 1)">/</span>golang<span style="color: rgba(128, 128, 128, 1)">/</span>mock v1.<span style="color: rgba(128, 0, 0, 1); font-weight: bold">1.1</span>
<span style="color: rgba(0, 0, 255, 1)">go</span>: finding github.com<span style="color: rgba(128, 128, 128, 1)">/</span>openzipkin<span style="color: rgba(128, 128, 128, 1)">/</span>zipkin<span style="color: rgba(128, 128, 128, 1)">-</span><span style="color: rgba(0, 0, 255, 1)">go</span> v0.<span style="color: rgba(128, 0, 0, 1); font-weight: bold">1.6</span>
<span style="color: rgba(0, 0, 255, 1)">go</span>: finding github.com<span style="color: rgba(128, 128, 128, 1)">/</span>golang<span style="color: rgba(128, 128, 128, 1)">/</span>glog v0.<span style="color: rgba(128, 0, 0, 1); font-weight: bold">0.0</span><span style="color: rgba(128, 128, 128, 1)">-</span><span style="color: rgba(128, 0, 0, 1); font-weight: bold">20160126235308</span><span style="color: rgba(128, 128, 128, 1)">-</span><span style="color: rgba(0, 0, 0, 1)">23def4e6c14b
</span><span style="color: rgba(0, 0, 255, 1)">go</span>: finding cloud.google.com<span style="color: rgba(128, 128, 128, 1)">/</span><span style="color: rgba(0, 0, 255, 1)">go</span> v0.<span style="color: rgba(128, 0, 0, 1); font-weight: bold">26.0</span>
<span style="color: rgba(0, 0, 255, 1)">go</span>: finding github.com<span style="color: rgba(128, 128, 128, 1)">/</span>client9<span style="color: rgba(128, 128, 128, 1)">/</span>misspell v0.<span style="color: rgba(128, 0, 0, 1); font-weight: bold">3.4</span>
<span style="color: rgba(0, 0, 255, 1)">go</span>: finding github.com<span style="color: rgba(128, 128, 128, 1)">/</span>prometheus<span style="color: rgba(128, 128, 128, 1)">/</span>client_model v0.<span style="color: rgba(128, 0, 0, 1); font-weight: bold">0.0</span><span style="color: rgba(128, 128, 128, 1)">-</span><span style="color: rgba(128, 0, 0, 1); font-weight: bold">20190115171406</span><span style="color: rgba(128, 128, 128, 1)">-</span><span style="color: rgba(0, 0, 0, 1)">56726106282f
</span><span style="color: rgba(0, 0, 255, 1)">go</span>: finding google.golang.org<span style="color: rgba(128, 128, 128, 1)">/</span>api v0.<span style="color: rgba(128, 0, 0, 1); font-weight: bold">3.1</span>
<span style="color: rgba(0, 0, 255, 1)">go</span>: finding github.com<span style="color: rgba(128, 128, 128, 1)">/</span>prometheus<span style="color: rgba(128, 128, 128, 1)">/</span>common v0.<span style="color: rgba(128, 0, 0, 1); font-weight: bold">2.0</span>
<span style="color: rgba(0, 0, 255, 1)">go</span>: finding golang.org<span style="color: rgba(128, 128, 128, 1)">/</span>x<span style="color: rgba(128, 128, 128, 1)">/</span>sync v0.<span style="color: rgba(128, 0, 0, 1); font-weight: bold">0.0</span><span style="color: rgba(128, 128, 128, 1)">-</span><span style="color: rgba(128, 0, 0, 1); font-weight: bold">20181108010431</span><span style="color: rgba(128, 128, 128, 1)">-</span><span style="color: rgba(0, 0, 0, 1)">42b317875d0f
</span><span style="color: rgba(0, 0, 255, 1)">go</span>: finding github.com<span style="color: rgba(128, 128, 128, 1)">/</span>Shopify<span style="color: rgba(128, 128, 128, 1)">/</span>toxiproxy v2.<span style="color: rgba(128, 0, 0, 1); font-weight: bold">1.4</span><span style="color: rgba(128, 128, 128, 1)">+</span><span style="color: rgba(0, 0, 0, 1)">incompatible
</span><span style="color: rgba(0, 0, 255, 1)">go</span>: finding github.com<span style="color: rgba(128, 128, 128, 1)">/</span>onsi<span style="color: rgba(128, 128, 128, 1)">/</span>ginkgo v1.<span style="color: rgba(128, 0, 0, 1); font-weight: bold">7.0</span>
<span style="color: rgba(0, 0, 255, 1)">go</span>: finding github.com<span style="color: rgba(128, 128, 128, 1)">/</span>eapache<span style="color: rgba(128, 128, 128, 1)">/</span><span style="color: rgba(0, 0, 255, 1)">go</span><span style="color: rgba(128, 128, 128, 1)">-</span>resiliency v1.<span style="color: rgba(128, 0, 0, 1); font-weight: bold">1.0</span>
<span style="color: rgba(0, 0, 255, 1)">go</span>: finding github.com<span style="color: rgba(128, 128, 128, 1)">/</span>prometheus<span style="color: rgba(128, 128, 128, 1)">/</span>procfs v0.<span style="color: rgba(128, 0, 0, 1); font-weight: bold">0.0</span><span style="color: rgba(128, 128, 128, 1)">-</span><span style="color: rgba(128, 0, 0, 1); font-weight: bold">20190117184657</span><span style="color: rgba(128, 128, 128, 1)">-</span><span style="color: rgba(0, 0, 0, 1)">bf6a532e95b1
</span><span style="color: rgba(0, 0, 255, 1)">go</span>: finding github.com<span style="color: rgba(128, 128, 128, 1)">/</span>onsi<span style="color: rgba(128, 128, 128, 1)">/</span>gomega v1.<span style="color: rgba(128, 0, 0, 1); font-weight: bold">4.3</span>
<span style="color: rgba(0, 0, 255, 1)">go</span>: finding github.com<span style="color: rgba(128, 128, 128, 1)">/</span>Shopify<span style="color: rgba(128, 128, 128, 1)">/</span>sarama v1.<span style="color: rgba(128, 0, 0, 1); font-weight: bold">19.0</span>
<span style="color: rgba(0, 0, 255, 1)">go</span>: finding golang.org<span style="color: rgba(128, 128, 128, 1)">/</span>x<span style="color: rgba(128, 128, 128, 1)">/</span>sys v0.<span style="color: rgba(128, 0, 0, 1); font-weight: bold">0.0</span><span style="color: rgba(128, 128, 128, 1)">-</span><span style="color: rgba(128, 0, 0, 1); font-weight: bold">20181116152217</span><span style="color: rgba(128, 128, 128, 1)">-</span><span style="color: rgba(0, 0, 0, 1)">5ac8a444bdc5
</span><span style="color: rgba(0, 0, 255, 1)">go</span>: finding github.com<span style="color: rgba(128, 128, 128, 1)">/</span>rcrowley<span style="color: rgba(128, 128, 128, 1)">/</span><span style="color: rgba(0, 0, 255, 1)">go</span><span style="color: rgba(128, 128, 128, 1)">-</span>metrics v0.<span style="color: rgba(128, 0, 0, 1); font-weight: bold">0.0</span><span style="color: rgba(128, 128, 128, 1)">-</span><span style="color: rgba(128, 0, 0, 1); font-weight: bold">20181016184325</span><span style="color: rgba(128, 128, 128, 1)">-</span><span style="color: rgba(0, 0, 0, 1)">3113b8401b8a
</span><span style="color: rgba(0, 0, 255, 1)">go</span>: finding github.com<span style="color: rgba(128, 128, 128, 1)">/</span>matttproud<span style="color: rgba(128, 128, 128, 1)">/</span>golang_protobuf_extensions v1.<span style="color: rgba(128, 0, 0, 1); font-weight: bold">0.1</span>
<span style="color: rgba(0, 0, 255, 1)">go</span>: finding github.com<span style="color: rgba(128, 128, 128, 1)">/</span>gorilla<span style="color: rgba(128, 128, 128, 1)">/</span>context v1.<span style="color: rgba(128, 0, 0, 1); font-weight: bold">1.1</span>
<span style="color: rgba(0, 0, 255, 1)">go</span>: finding github.com<span style="color: rgba(128, 128, 128, 1)">/</span>prometheus<span style="color: rgba(128, 128, 128, 1)">/</span>procfs v0.<span style="color: rgba(128, 0, 0, 1); font-weight: bold">0.0</span><span style="color: rgba(128, 128, 128, 1)">-</span><span style="color: rgba(128, 0, 0, 1); font-weight: bold">20181005140218</span><span style="color: rgba(128, 128, 128, 1)">-</span><span style="color: rgba(0, 0, 0, 1)">185b4288413d
</span><span style="color: rgba(0, 0, 255, 1)">go</span>: finding github.com<span style="color: rgba(128, 128, 128, 1)">/</span>pierrec<span style="color: rgba(128, 128, 128, 1)">/</span>lz4 v2.<span style="color: rgba(128, 0, 0, 1); font-weight: bold">0.5</span><span style="color: rgba(128, 128, 128, 1)">+</span><span style="color: rgba(0, 0, 0, 1)">incompatible
</span><span style="color: rgba(0, 0, 255, 1)">go</span>: finding golang.org<span style="color: rgba(128, 128, 128, 1)">/</span>x<span style="color: rgba(128, 128, 128, 1)">/</span>net v0.<span style="color: rgba(128, 0, 0, 1); font-weight: bold">0.0</span><span style="color: rgba(128, 128, 128, 1)">-</span><span style="color: rgba(128, 0, 0, 1); font-weight: bold">20180906233101</span><span style="color: rgba(128, 128, 128, 1)">-</span><span style="color: rgba(0, 0, 0, 1)">161cd47e91fd
</span><span style="color: rgba(0, 0, 255, 1)">go</span>: writing <span style="color: rgba(0, 0, 255, 1)">go</span>.mod cache: rename D:\<span style="color: rgba(0, 0, 255, 1)">Go</span>\pkg\mod\cache\download\github.com\prometheus\procfs\<span style="color: rgba(0, 128, 0, 1)">@v</span>\v0.<span style="color: rgba(128, 0, 0, 1); font-weight: bold">0.0</span><span style="color: rgba(128, 128, 128, 1)">-</span><span style="color: rgba(128, 0, 0, 1); font-weight: bold">20181005140218</span><span style="color: rgba(128, 128, 128, 1)">-</span>185b4288413d.mod373518781.tmp <br>   D:\<span style="color: rgba(0, 0, 255, 1)">Go</span>\pkg\mod\cache\download\github.com\prometheus\procfs\<span style="color: rgba(0, 128, 0, 1)">@v</span>\v0.<span style="color: rgba(128, 0, 0, 1); font-weight: bold">0.0</span><span style="color: rgba(128, 128, 128, 1)">-</span><span style="color: rgba(128, 0, 0, 1); font-weight: bold">20181005140218</span><span style="color: rgba(128, 128, 128, 1)">-</span>185b4288413d.mod: Access <span style="color: rgba(0, 0, 255, 1)">is</span><span style="color: rgba(0, 0, 0, 1)"> denied.
</span><span style="color: rgba(0, 0, 255, 1)">go</span>: finding github.com<span style="color: rgba(128, 128, 128, 1)">/</span>gogo<span style="color: rgba(128, 128, 128, 1)">/</span>protobuf v1.<span style="color: rgba(128, 0, 0, 1); font-weight: bold">1.1</span>
<span style="color: rgba(0, 0, 255, 1)">go</span>: finding github.com<span style="color: rgba(128, 128, 128, 1)">/</span>fsnotify<span style="color: rgba(128, 128, 128, 1)">/</span>fsnotify v1.<span style="color: rgba(128, 0, 0, 1); font-weight: bold">4.7</span>
<span style="color: rgba(0, 0, 255, 1)">go</span>: finding gopkg.<span style="color: rgba(128, 128, 128, 1)">in/</span>fsnotify.v1 v1.<span style="color: rgba(128, 0, 0, 1); font-weight: bold">4.7</span>
<span style="color: rgba(0, 0, 255, 1)">go</span>: finding github.com<span style="color: rgba(128, 128, 128, 1)">/</span>julienschmidt<span style="color: rgba(128, 128, 128, 1)">/</span>httprouter v1.<span style="color: rgba(128, 0, 0, 1); font-weight: bold">2.0</span>
<span style="color: rgba(0, 0, 255, 1)">go</span>: finding github.com<span style="color: rgba(128, 128, 128, 1)">/</span><span style="color: rgba(0, 0, 255, 1)">go</span><span style="color: rgba(128, 128, 128, 1)">-</span>logfmt<span style="color: rgba(128, 128, 128, 1)">/</span>logfmt v0.<span style="color: rgba(128, 0, 0, 1); font-weight: bold">3.0</span>
<span style="color: rgba(0, 0, 255, 1)">go</span>: finding github.com<span style="color: rgba(128, 128, 128, 1)">/</span>kr<span style="color: rgba(128, 128, 128, 1)">/</span>logfmt v0.<span style="color: rgba(128, 0, 0, 1); font-weight: bold">0.0</span><span style="color: rgba(128, 128, 128, 1)">-</span><span style="color: rgba(128, 0, 0, 1); font-weight: bold">20140226030751</span><span style="color: rgba(128, 128, 128, 1)">-</span><span style="color: rgba(0, 0, 0, 1)">b84e30acd515
</span><span style="color: rgba(0, 0, 255, 1)">go</span>: finding google.golang.org<span style="color: rgba(128, 128, 128, 1)">/</span>genproto v0.<span style="color: rgba(128, 0, 0, 1); font-weight: bold">0.0</span><span style="color: rgba(128, 128, 128, 1)">-</span><span style="color: rgba(128, 0, 0, 1); font-weight: bold">20190404172233</span><span style="color: rgba(128, 128, 128, 1)">-</span><span style="color: rgba(0, 0, 0, 1)">64821d5d2107
</span><span style="color: rgba(0, 0, 255, 1)">go</span>: finding github.com<span style="color: rgba(128, 128, 128, 1)">/</span>pkg<span style="color: rgba(128, 128, 128, 1)">/</span>errors v0.<span style="color: rgba(128, 0, 0, 1); font-weight: bold">8.0</span>
<span style="color: rgba(0, 0, 255, 1)">go</span>: finding golang.org<span style="color: rgba(128, 128, 128, 1)">/</span>x<span style="color: rgba(128, 128, 128, 1)">/</span>tools v0.<span style="color: rgba(128, 0, 0, 1); font-weight: bold">0.0</span><span style="color: rgba(128, 128, 128, 1)">-</span><span style="color: rgba(128, 0, 0, 1); font-weight: bold">20190226205152</span><span style="color: rgba(128, 128, 128, 1)">-</span><span style="color: rgba(0, 0, 0, 1)">f727befe758c
</span><span style="color: rgba(0, 0, 255, 1)">go</span>: finding github.com<span style="color: rgba(128, 128, 128, 1)">/</span>sirupsen<span style="color: rgba(128, 128, 128, 1)">/</span>logrus v1.<span style="color: rgba(128, 0, 0, 1); font-weight: bold">2.0</span>
<span style="color: rgba(0, 0, 255, 1)">go</span>: finding github.com<span style="color: rgba(128, 128, 128, 1)">/</span><span style="color: rgba(0, 0, 255, 1)">go</span><span style="color: rgba(128, 128, 128, 1)">-</span>kit<span style="color: rgba(128, 128, 128, 1)">/</span>kit v0.<span style="color: rgba(128, 0, 0, 1); font-weight: bold">8.0</span>
<span style="color: rgba(0, 0, 255, 1)">go</span>: finding github.com<span style="color: rgba(128, 128, 128, 1)">/</span>mwitkow<span style="color: rgba(128, 128, 128, 1)">/</span><span style="color: rgba(0, 0, 255, 1)">go</span><span style="color: rgba(128, 128, 128, 1)">-</span>conntrack v0.<span style="color: rgba(128, 0, 0, 1); font-weight: bold">0.0</span><span style="color: rgba(128, 128, 128, 1)">-</span><span style="color: rgba(128, 0, 0, 1); font-weight: bold">20161129095857</span><span style="color: rgba(128, 128, 128, 1)">-</span><span style="color: rgba(0, 0, 0, 1)">cc309e4a2223
</span><span style="color: rgba(0, 0, 255, 1)">go</span>: finding github.com<span style="color: rgba(128, 128, 128, 1)">/</span>alecthomas<span style="color: rgba(128, 128, 128, 1)">/</span>units v0.<span style="color: rgba(128, 0, 0, 1); font-weight: bold">0.0</span><span style="color: rgba(128, 128, 128, 1)">-</span><span style="color: rgba(128, 0, 0, 1); font-weight: bold">20151022065526</span><span style="color: rgba(128, 128, 128, 1)">-</span><span style="color: rgba(0, 0, 0, 1)">2efee857e7cf
</span><span style="color: rgba(0, 0, 255, 1)">go</span>: finding github.com<span style="color: rgba(128, 128, 128, 1)">/</span>onsi<span style="color: rgba(128, 128, 128, 1)">/</span>ginkgo v1.<span style="color: rgba(128, 0, 0, 1); font-weight: bold">6.0</span>
<span style="color: rgba(0, 0, 255, 1)">go</span>: finding github.com<span style="color: rgba(128, 128, 128, 1)">/</span>alecthomas<span style="color: rgba(128, 128, 128, 1)">/</span>template v0.<span style="color: rgba(128, 0, 0, 1); font-weight: bold">0.0</span><span style="color: rgba(128, 128, 128, 1)">-</span><span style="color: rgba(128, 0, 0, 1); font-weight: bold">20160405071501</span><span style="color: rgba(128, 128, 128, 1)">-</span><span style="color: rgba(0, 0, 0, 1)">a0175ee3bccc
</span><span style="color: rgba(0, 0, 255, 1)">go</span>: finding gopkg.<span style="color: rgba(128, 128, 128, 1)">in/</span>alecthomas<span style="color: rgba(128, 128, 128, 1)">/</span>kingpin.v2 v2.<span style="color: rgba(128, 0, 0, 1); font-weight: bold">2.6</span>
<span style="color: rgba(0, 0, 255, 1)">go</span>: finding golang.org<span style="color: rgba(128, 128, 128, 1)">/</span>x<span style="color: rgba(128, 128, 128, 1)">/</span>sys v0.<span style="color: rgba(128, 0, 0, 1); font-weight: bold">0.0</span><span style="color: rgba(128, 128, 128, 1)">-</span><span style="color: rgba(128, 0, 0, 1); font-weight: bold">20180905080454</span><span style="color: rgba(128, 128, 128, 1)">-</span><span style="color: rgba(0, 0, 0, 1)">ebe1bf3edb33
</span><span style="color: rgba(0, 0, 255, 1)">go</span>: finding github.com<span style="color: rgba(128, 128, 128, 1)">/</span>stretchr<span style="color: rgba(128, 128, 128, 1)">/</span>objx v0.<span style="color: rgba(128, 0, 0, 1); font-weight: bold">1.1</span>
<span style="color: rgba(0, 0, 255, 1)">go</span>: finding github.com<span style="color: rgba(128, 128, 128, 1)">/</span>konsorten<span style="color: rgba(128, 128, 128, 1)">/</span><span style="color: rgba(0, 0, 255, 1)">go</span><span style="color: rgba(128, 128, 128, 1)">-</span>windows<span style="color: rgba(128, 128, 128, 1)">-</span>terminal<span style="color: rgba(128, 128, 128, 1)">-</span>sequences v1.<span style="color: rgba(128, 0, 0, 1); font-weight: bold">0.1</span>
<span style="color: rgba(0, 0, 255, 1)">go</span>: finding golang.org<span style="color: rgba(128, 128, 128, 1)">/</span>x<span style="color: rgba(128, 128, 128, 1)">/</span>crypto v0.<span style="color: rgba(128, 0, 0, 1); font-weight: bold">0.0</span><span style="color: rgba(128, 128, 128, 1)">-</span><span style="color: rgba(128, 0, 0, 1); font-weight: bold">20180904163835</span><span style="color: rgba(128, 128, 128, 1)">-</span><span style="color: rgba(0, 0, 0, 1)">0709b304e793
</span><span style="color: rgba(0, 0, 255, 1)">go</span>: finding github.com<span style="color: rgba(128, 128, 128, 1)">/</span>hpcloud<span style="color: rgba(128, 128, 128, 1)">/</span>tail v1.<span style="color: rgba(128, 0, 0, 1); font-weight: bold">0.0</span><span style="color: rgba(0, 0, 0, 1)">
PS D:\</span><span style="color: rgba(0, 0, 255, 1)">Go</span>\src\apple<span style="color: rgba(128, 128, 128, 1)">&gt;</span> <span style="color: rgba(0, 0, 255, 1)">go</span><span style="color: rgba(0, 0, 0, 1)"> mod download
PS D:\</span><span style="color: rgba(0, 0, 255, 1)">Go</span>\src\apple<span style="color: rgba(128, 128, 128, 1)">&gt;</span> </pre>
</div>
<p>&nbsp;</p>
<h3>05、查看软件包的版本信息:</h3>
<p>&nbsp;</p>
<p><img src="https://img2020.cnblogs.com/blog/1368961/202012/1368961-20201202154314767-1561162487.png" alt="" width="1196" height="576" loading="lazy"></p>
<p>&nbsp;</p>
<p><code>go module</code>是Go1.11版本之后官方推出的版本管理工具,并且从<code>Go1.13</code>版本开始,<code>go module</code>将是Go语言默认的依赖管理工具。到今天<code>Go1.14</code>版本推出之后<code>Go modules</code>&nbsp;功能已经被正式推荐在生产环境下使用了。</p>
<p>目前已经有很多教程讲解如何使用go module,以及如何使用go module导入gitlab私有仓库,我这里就不再啰嗦了。</p>
<p>最近我发现很多小伙伴在群里问如何使用<code>go module</code>导入本地包,毕竟初学者刚开始接触package概念的时候都是先在本地创建一个包,然后尝试本地调用一下,但是在go module模式下调用本地包就很容易被卡住了。</p>
<p>本文就详细介绍下如何使用<code>go module</code>导入本地包。</p>
<h2>前提</h2>
<p>假设我们现在有<code>moduledemo</code>和<code>mypackage</code>两个包,其中<code>moduledemo</code>包中会导入<code>mypackage</code>包并使用它的<code>New</code>方法。</p>
<p><code>mypackage/mypackage.go</code>内容如下:</p>
<div class="highlight">
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 255, 1)">package</span><span style="color: rgba(0, 0, 0, 1)"> mypackage

</span><span style="color: rgba(0, 0, 255, 1)">import</span> "fmt"<span style="color: rgba(0, 0, 0, 1)">

func New(){
    fmt.Println(</span>"mypackage.New"<span style="color: rgba(0, 0, 0, 1)">)
}</span></pre>
</div>
<p>&nbsp;</p>
</div>
<p>我们现在分两种情况讨论:</p>
<h2>在同一个项目下</h2>
<p>注意:在一个项目(project)下我们是可以定义多个包(package)的。</p>
<h3>目录结构</h3>
<p>现在的情况是,我们在<code>moduledemo/main.go</code>中调用了<code>mypackage</code>这个包。</p>
<div class="highlight">
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">moduledemo
├── go.mod
├── main.go
└── mypackage
    └── mypackage.go</span></pre>
</div>
<p>&nbsp;</p>
</div>
<h3>导入包</h3>
<p>这个时候,我们需要在<code>moduledemo/go.mod</code>中按如下定义:</p>
<div class="highlight">
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">module moduledemo

go </span>1.14</pre>
</div>
<p>&nbsp;</p>
</div>
<p>然后在<code>moduledemo/main.go</code>中按如下方式导入<code>mypackage</code></p>
<div class="highlight">
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 255, 1)">package</span><span style="color: rgba(0, 0, 0, 1)"> main

</span><span style="color: rgba(0, 0, 255, 1)">import</span><span style="color: rgba(0, 0, 0, 1)"> (
    </span>"fmt"
    "moduledemo/mypackage"<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 导入同一项目下的mypackage包</span>
<span style="color: rgba(0, 0, 0, 1)">)
func main() {
    mypackage.New()
    fmt.Println(</span>"main"<span style="color: rgba(0, 0, 0, 1)">)
}</span></pre>
</div>
<p>&nbsp;</p>
</div>
<h3>举个例子</h3>
<p>举一反三,假设我们现在有文件目录结构如下:</p>
<div class="highlight">
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">└── bubble
    ├── dao
    │   └── mysql.go
    ├── go.mod
    └── main.go</span></pre>
</div>
<p>&nbsp;</p>
</div>
<p>其中<code>bubble/go.mod</code>内容如下:</p>
<div class="highlight">
<div class="cnblogs_code">
<pre>module github.com/q1mi/<span style="color: rgba(0, 0, 0, 1)">bubble

go </span>1.14</pre>
</div>
<p>&nbsp;</p>
</div>
<p><code>bubble/dao/mysql.go</code>内容如下:</p>
<div class="highlight">
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 255, 1)">package</span><span style="color: rgba(0, 0, 0, 1)"> dao

</span><span style="color: rgba(0, 0, 255, 1)">import</span> "fmt"<span style="color: rgba(0, 0, 0, 1)">

func New(){
    fmt.Println(</span>"mypackage.New"<span style="color: rgba(0, 0, 0, 1)">)
}</span></pre>
</div>
<p>&nbsp;</p>
</div>
<p><code>bubble/main.go</code>内容如下:</p>
<div class="highlight">
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 255, 1)">package</span><span style="color: rgba(0, 0, 0, 1)"> main

</span><span style="color: rgba(0, 0, 255, 1)">import</span><span style="color: rgba(0, 0, 0, 1)"> (
    </span>"fmt"
    "github.com/q1mi/bubble/dao"<span style="color: rgba(0, 0, 0, 1)">
)
func main() {
    dao.New()
    fmt.Println(</span>"main"<span style="color: rgba(0, 0, 0, 1)">)
}</span></pre>
</div>
<p>&nbsp;</p>
</div>
<h2>不在同一个项目下</h2>
<h3>目录结构</h3>
<div class="highlight">
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">├── moduledemo
│   ├── go.mod
│   └── main.go
└── mypackage
    ├── go.mod
    └── mypackage.go</span></pre>
</div>
<p>&nbsp;</p>
</div>
<h3>导入包</h3>
<p>这个时候,<code>mypackage</code>也需要进行module初始化,即拥有一个属于自己的<code>go.mod</code>文件,内容如下:</p>
<div class="highlight">
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">module mypackage

go </span>1.14</pre>
</div>
<p>&nbsp;</p>
</div>
<p>然后我们在<code>moduledemo/main.go</code>中按如下方式导入:</p>
<div class="highlight">
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 255, 1)">import</span><span style="color: rgba(0, 0, 0, 1)"> (
    </span>"fmt"
    "mypackage"<span style="color: rgba(0, 0, 0, 1)">
)
func main() {
    mypackage.New()
    fmt.Println(</span>"main"<span style="color: rgba(0, 0, 0, 1)">)
}</span></pre>
</div>
<p>&nbsp;</p>
</div>
<p>因为这两个包不在同一个项目路径下,你想要导入本地包,并且这些包也没有发布到远程的github或其他代码仓库地址。这个时候我们就需要在<code>go.mod</code>文件中使用<code>replace</code>指令。</p>
<p>在调用方也就是<code>packagedemo/go.mod</code>中按如下方式指定使用相对路径来寻找<code>mypackage</code>这个包。</p>
<div class="highlight">
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">module moduledemo

go </span>1.14<span style="color: rgba(0, 0, 0, 1)">


require </span>"mypackage" v0.0.0<span style="color: rgba(0, 0, 0, 1)">
replace </span>"mypackage" =&gt; "../mypackage"</pre>
</div>
<p>&nbsp;</p>
</div>
<h3>举个例子</h3>
<p>最后我们再举个例子巩固下上面的内容。</p>
<p>我们现在有文件目录结构如下:</p>
<div class="highlight">
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">├── p1
│   ├── go.mod
│   └── main.go
└── p2
    ├── go.mod
    └── p2.go</span></pre>
</div>
<p>&nbsp;</p>
</div>
<p><code>p1/main.go</code>中想要导入<code>p2.go</code>中定义的函数。</p>
<p><code>p2/go.mod</code>内容如下:</p>
<div class="highlight">
<div class="cnblogs_code">
<pre>module liwenzhou.com/q1mi/<span style="color: rgba(0, 0, 0, 1)">p2

go </span>1.14</pre>
</div>
<p>&nbsp;</p>
</div>
<p><code>p1/main.go</code>中按如下方式导入</p>
<div class="highlight">
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 255, 1)">import</span><span style="color: rgba(0, 0, 0, 1)"> (
    </span>"fmt"
    "liwenzhou.com/q1mi/p2"<span style="color: rgba(0, 0, 0, 1)">
)
func main() {
    p2.New()
    fmt.Println(</span>"main"<span style="color: rgba(0, 0, 0, 1)">)
}</span></pre>
</div>
<p>&nbsp;</p>
</div>
<p>因为我并没有把<code>liwenzhou.com/q1mi/p2</code>这个包上传到<code>liwenzhou.com</code>这个网站,我们只是想导入本地的包,这个时候就需要用到<code>replace</code>这个指令了。</p>
<p><code>p1/go.mod</code>内容如下:</p>
<div class="highlight">
<div class="cnblogs_code">
<pre>module github.com/q1mi/<span style="color: rgba(0, 0, 0, 1)">p1

go </span>1.14<span style="color: rgba(0, 0, 0, 1)">


require </span>"liwenzhou.com/q1mi/p2" v0.0.0<span style="color: rgba(0, 0, 0, 1)">
replace </span>"liwenzhou.com/q1mi/p2" =&gt; "../p2"</pre>
</div>
<p>&nbsp;</p>
</div>
<p>此时,我们就可以正常编译<code>p1</code>这个项目了。</p>
<p>说再多也没用,自己动手试试吧。</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>#############################################</p>

</div>
<div id="MySignature" role="contentinfo">
    igoodful@qq.com<br><br>
来源:https://www.cnblogs.com/igoodful/p/14073786.html
頁: [1]
查看完整版本: go中开启 go module