В других ответах отсутствует важный момент:
Использование диспетчера пакетов означает наличие конфигурации, которая указывает, какие версии библиотек вы используете, и обеспечивает правильность информации о конфигурации.
Знание того, какие библиотеки вы используете и какую версию, очень важно, если вы:
- необходимо обновить библиотеку из-за критической ошибки / дыры в безопасности;
- или просто нужно проверить, влияет ли объявленная дыра в безопасности на вас.
Кроме того, когда вы действительно выполняете обновление, менеджер пакетов (обычно) следит за тем, чтобы любые транзитивные зависимости обновлялись по мере необходимости.
Принимая во внимание, что с lib
папкой у вас просто есть куча (возможно, двоичных и, возможно, измененных) файлов, и вам нужно будет угадать, откуда они и какую версию они представляют (или доверять некоторому README, что может быть или не быть правильным ).
Для решения других ваших вопросов:
Нет необходимости во внешнем инструменте для управления пакетами.
Да, но а) как разработчик программного обеспечения, вам все равно нужно устанавливать множество инструментов, поэтому обычно еще один не имеет значения, и б) обычно в каждом поле есть только один или несколько менеджеров пакетов (Maven / Gradle для Java, npm для JS / TypeScript и т. д.), поэтому вам не нужно устанавливать десятки из них.
Нет подключения к интернету требуется построить.
Все менеджеры пакетов, которых я знаю, работают в автономном режиме, как только они загрузили необходимые зависимости (что может произойти сразу после загрузки самого проекта).
Быстрая сборка (без проверки пакетов).
Возможно, это правда, но кажется маловероятным, что автономная проверка пакетов займет значительное время (это просто сравнение некоторых номеров версий). Проверка в режиме онлайн может занять некоторое время, но при желании ее можно отключить (если она даже включена по умолчанию - например, Maven никогда не проверяет наличие обновлений для версий выпуска).
Более простые условия (требуется меньше знаний).
Правда, но, как объяснено выше, lib
папка также требует знаний. Кроме того, как объяснено выше, вы, вероятно, будете работать только с несколькими менеджерами пакетов, о которых вы уже знаете.