«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Можете ли вы полностью избежать косвенных зависимостей в модулях Go?

Можете ли вы полностью избежать косвенных зависимостей в модулях Go?

Опубликовано 12 ноября 2024 г.
Просматривать:533

Can You Completely Avoid Indirect Dependencies in Go Modules?

Избежание косвенных зависимостей в файлах go.mod

В контексте модулей Go зависимости — это пакеты, которые требуются конкретному модулю. Хотя прямые зависимости явно перечислены в инструкции require файла go.mod, косвенные зависимости добавляются автоматически, когда от них зависит прямая зависимость.

Это может привести к ситуации, когда файл go.mod модуля содержит многочисленные косвенные зависимости, даже если они не используются непосредственно самим модулем. Это может сбивать с толку, и с этим сложно справиться, особенно если включено несколько версий зависимости.

К сожалению, полностью избежать косвенных зависимостей в файлах go.mod невозможно. При использовании модулей Go все зависимости, необходимые для прямой зависимости, будут автоматически добавлены как косвенные зависимости, если не указано иное.

Возьмите пример, приведенный в вопросе:

module prodenv

go 1.13

require (
    github.com/gocolly/colly v1.2.0
    ...
)

В этом случае github.com/gocolly/colly v1.2.0 не имеет файла go.mod, поэтому все его зависимости перечислены как косвенные в файле go.mod модуля prodenv.

Чтобы избежать косвенных зависимостей, рекомендуется использовать зависимости, имеющие файлы go.mod. Это гарантирует, что в файле go.mod будут перечислены только те зависимости, которые напрямую используются модулем.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3