Публикация модуля

Когда вы хотите сделать модуль доступным для других разработчиков, вы публикуете его, чтобы он был виден инструментам Go. После публикации модуля разработчики, импортирующие его пакеты, смогут разрешить зависимость на модуль, выполнив команды, такие как go get.

Примечание: Не изменяйте помеченные тегом версии модуля после его публикации. Для разработчиков, использующих модуль, инструменты Go проверяют подлинность загруженного модуля по сравнению с первой загруженной копией. Если они отличаются, инструменты Go возвращают ошибку безопасности. Вместо изменения кода для ранее опубликованной версии, публикуйте новую версию.

См. также

Шаги публикации

Для публикации модуля используйте следующие шаги.

  1. Откройте командную строку и перейдите в корневую директорию вашего модуля в локальном репозитории.

  2. Выполните go mod tidy, которая удаляет все зависимости, которые модуль мог накопить, но больше не требуются.

    <code>$ go mod tidy
    </code>
  3. Выполните go test ./... в последний раз, чтобы убедиться, что всё работает.

    Эта команда запускает модульные тесты, написанные с использованием фреймворка Go testing.

    <code>$ go test ./...
    ok      example.com/mymodule       0.015s
    </code>
  4. Пометьте проект новым номером версии с помощью команды git tag.

    В качестве номера версии используйте число, которое сигнализирует пользователям о характере изменений в этом релизе. Подробнее см. Нумерация версий модулей.

    <code>$ git commit -m "mymodule: changes for v0.1.0"
    $ git tag v0.1.0
    </code>
  5. Отправьте новый тег в репозиторий origin.

    <code>$ git push origin v0.1.0
    </code>
  6. Сделайте модуль доступным, выполнив команду go list, чтобы заставить Go обновить свой индекс модулей с информацией о публикуемом модуле.

    Перед командой добавьте инструкцию для установки переменной окружения GOPROXY на прокси Go. Это гарантирует, что ваш запрос достигнет прокси.

    <code>$ GOPROXY=proxy.golang.org go list -m example.com/mymodule@v0.1.0
    </code>

Разработчики, заинтересованные в вашем модуле, импортируют пакет из него и запускают команду go get, как это делают с любым другим модулем. Они могут запускать команду go get для получения последней версии или указывать конкретную версию, как показано в следующем примере:

<code>$ go get example.com/mymodule@v0.1.0
</code>
GoRu.dev Golang на русском

На сайте представлена адаптированная под русский язык документация языка программирования Golang