Дана стаття, це коротка шпаргалка по управлінню модулями в 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
Вибір мінімальної версії (MVS)
Для побудови програми, компілятору go необхідно знати, які саме залежності потрібні та які версії використовувати.
Go використовує MVS (вибір мінімальної версії) як простий та передбачуваний спосіб для вирішення яку версію використовувати.
Це працює наступним чином:
- Модуль з якого ви запускаєте програму називається “main module”
- Пошук всіх залежностей які необхідні основному модулю (рекурсивно, використовуючи залежності файлів go.mod)
- Для кожної залежності використовується найвища версія прямо вказана в будь-якому go.mod файлі
Приклад
В цьому прикладі основний модуль залежить від 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
Ще немає коментарів