Go模块:go构建后,main.go文件被覆盖

时间:2019-06-22 13:55:18

标签: go build dependencies go-modules

我面临一个奇怪的问题,即在使用go模块供应依赖项后,go build命令会使用随机数据覆盖main.go文件。

文件的开始看起来像这样:

����
H
H__PAGEZEROx__TEXTpxpx__text__TEXT��7�__rodata__TEXT��7Y��7__symbol_stub1__TEXT�V��V�__typelink__TEXT�V�(�V__itablink__TEXTP@V�
P@V__gosymtab__TEXT�JV�JV__gopclntab__TEXTKV
"KV�__DATApx�|px c
__nl_symbol_ptr__DATApx�pxs__noptrdata__DATA�sx���sx__data__DATA�&{���&{__bss__DATA �{��__noptrbss__DATA�}�2__DWARF�}�{��   __zdebug_abbrev__DWARF�}�{__zdebug_line__DWARF�}'W�{__zdebug_frame__DWARF;H���;8�__zdebug_pubname__DWARF�څ�K�ʃ__zdebug_pubtype__DWARF�&����__debug_gdb_scri__DWARF��6�ӄ__zdebug_info__DWARF���
�ӄ__zdebug_loc__DWARF䉑��y�__zdebug_ranges__DWARFU��ZE�H__LINKEDIT�}L���L��*�����,�r���Pu,u,x,xo�� /usr/lib/dyld8/usr/lib/libSystem.B.dylibh/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation`/System/Library/Frameworks/Security.framework/Versions/A/Security$

� Go build ID: "OLftMbjtv5aWMkI_0qrD/LhWRtD0wcaKFWRYSDOa9/7dFWcNOQ4BpWWqZQW07D/pkR9ABiz-SHIBaJIZ1ur"
 ����������UH��AWAVATSH���=|I��

开始版本:继续版本go1.12.5 darwin/amd64

已启用export GO111MODULE=on的Go模块化

文件夹结构: go.mod go.sum log.go main.go供应商

仅供参考:仅main.go被覆盖,而不是log.go。

使用go mod init初始化的Go模块

应用go mod vendor出售的应用

不确定我是否做错了什么。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

模块名称不应为main.go,因为它是包中的文件。请在COPY test.env / RUN export $(cat test.env | xargs) 中使用项目名称作为模块名称。

例如,如果您的项目根目录是hello,则将包命名为hello,而不是go mod init。 另外,如果您要反复使用该模块,请考虑使用您的存储库名称作为模块名称。

Go处理包而不是单个文件。 Go模块用于组织软件包。在official documentation

中了解更多