Шпаргалка по модулям в Golang

Шпаргалка по модулям в Golang

Дана стаття, це коротка шпаргалка по управлінню модулями в Go. Ця стаття являється перекладом цієї замітки Go modules cheat sheet

Управління залежностями

Додати або оновити залежність

go get -d github.com/path/to/module  

Використовувати конкренту версію

go get -d github.com/dep/two/[email protected]

Використовувати конкретну гілку

go get -d github.com/dep/[email protected]

Оновити всі модулі у вказаному каталозі

go get -d -u ./...                  

Видалити залежність

go get -d github.com/dep/[email protected]

Корисні команди

Улаштувати або почистити go.mod та go.sum

go mod tidy 

Завантажити залежності в кеш модулів

go mod download

Ініціалізувати новий модуль

go mod init github.com/path/to/module 

Перевірити чому вказаний модуль є залежністю

go mod why -m github.com/path/to/module

Зібрати та встановити бінарний файл

go install github.com/path/to/[email protected]

Анатомія go.mod

Шпаргалка по модулям в Golang

Вибір мінімальної версії (MVS)

Для побудови програми, компілятору go необхідно знати, які саме залежності потрібні та які версії використовувати.

Go використовує MVS (вибір мінімальної версії) як простий та передбачуваний спосіб для вирішення яку версію використовувати.

Це працює наступним чином:

  1. Модуль з якого ви запускаєте програму називається “main module”
  2. Пошук всіх залежностей які необхідні основному модулю (рекурсивно, використовуючи залежності файлів go.mod)
  3. Для кожної залежності використовується найвища версія прямо вказана в  будь-якому go.mod файлі

Приклад

Шпаргалка по модулям в Golang

В цьому прикладі основний модуль залежить від A 1.0 і B 2.1.

Оскільки B 2.1 залежить від A 1.1, ця версія модуля A буде використовуватися

Оскільки A 1.1 використовується, вона також витягує C 1.1

Фінальний список залежностей

  • A 1.1
  • B 2.1
  • C 1.1
Помітили помилку? Повідомте автору, для цього достатньо виділити текст з помилкою та натиснути Ctrl+Enter
Читайте також: ethernet linux, packagist, page object

Коментарі (0)

    Ще немає коментарів

Щоб залишити коментар необхідно авторизуватися.

Вхід / Реєстрація