Где хранить подмодули git внутри проекта go? - PullRequest
0 голосов
/ 18 февраля 2020

Я хочу добавить подмодуль в мой go проект.

Подмодуль будет содержать несколько .proto файлов и несколько go файлов. Я буду использовать protos для генерации файлов grp c -gateway, используя мой Makefile, который будет иметь тот же пакет, что и файлы go в репозитории. Репо, в котором содержатся эти прототипы, не мое, и другие его разрабатывают. Я не буду фиксировать эти сгенерированные файлы шлюза.

Существует ли какая-либо конкретная c структура для таких файлов в golang проектах? Должен ли я хранить их в каталоге pkg?

У меня есть три папки со сборками, конфигами и шаблонами в моем проекте.

Ответы [ 2 ]

0 голосов
/ 18 февраля 2020

Вы можете хранить их в каталоге pkg, возможно в pkg/proto.

Имена пакетов для сгенерированных файлов go будут присутствовать в атрибуте go_package в .proto файл. Например,

option go_package = "external/api/messages";

Тогда после компиляции имя пакета в файле go будет

package messages

Это структура папок

$ tree
.
`-- pkg
    `-- proto
        `-- messages
            |-- messages.pb.go
            `-- messages.proto

Чтобы импортировать его, вам нужно будет обновить go.mod файл

replace external/api v0.0.0 => ./pkg/proto

, затем вы можете импортировать его, используя

import (
    "external/api/messages"
)
0 голосов
/ 18 февраля 2020

Если вы хотите сохранить зависимости вашего проекта в своем проекте, то лучше хранить их в каталоге vendor.

Но обычно я использую для этого go модули.

Также может быть полезно для вас: https://github.com/golang-standards/project-layout

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...