Работа с зависимостями¶
Создание lock и dep-tree файлов¶
Java¶
При работе с Java можно создать дополнительные артефакты, содержащие полную структуру зависимостей проекта.
Apache Maven:¶
maven-dependency-tree.txt
¶
Gradle:¶
gradle-dependency-tree.txt
¶
После создания артефактов необходимо применить команду scan file
для полученного артефакта, например:
Scala¶
sbt¶
scala-dependency-tree.txt
или sbt-dependency-tree.txt
¶
Для корректного выполнения композиционного анализа в проектах на Scala с использованием sbt
выполните следующие шаги:
-
Настройка ширины графа зависимостей
Чтобы сгенерировать полный граф зависимостей добавьте следующую строку в файл
build.sbt
:Альтернативно, можно установить значение
asciiGraphWidth
глобально. -
Генерация дерева зависимостей
Выполните следующую команду для генерации дерева зависимостей:
Убедитесь, что файл сохранен с именем
scala-dependency-tree.txt
илиsbt-dependency-tree.txt
, так как только эти имена поддерживаются для корректного парсинга. -
Сканирование сгенерированного файла
Флаг
--sbt-resolve
в команде сканирования в данном случае не нужен, поскольку выполняется сканирование уже сгенерированного дерева с полной структурой зависимостей.
Golang (Go Modules)¶
go¶
go.sum
¶
- Инициализируйте модуль (если еще не сделано):
- Установите зависимости:
- После установки зависимостей автоматически создаются и обновляются файлы
go.mod
иgo.sum
. - Закрепите версии зависимостей:
Node.js (npm и yarn)¶
npm¶
package-lock.json
¶
- Инициализируйте проект (если еще не сделано):
- Установите зависимости:
yarn¶
yarn.lock
¶
- Инициализируйте проект:
- Установите зависимости:
C# / .NET¶
NuGet¶
packages.lock.json
¶
- Включите поддержку lock-файла (для .NET 5 и выше):
- Установите зависимости:
paket¶
paket.lock
¶
- Создайте lock-file:
PHP¶
Composer¶
composer.lock
¶
- Инициализируйте проект (если еще не сделано):
- Установите зависимости:
или
Создайте lock-file напрямую:
Python¶
pip¶
requirements.txt
¶
- Установите зависимости и сохраните их в lock-файл:
pipenv¶
Pipfile.lock
¶
- Установите pipenv (если еще не установлен):
- Создайте
Pipfile.lock
:
poetry¶
poetry.lock
¶
Если файл poetry.lock
еще не существует, Poetry создаст его автоматически при установке зависимостей. Если файл уже существует, он будет обновлен. Для этого выполните команду:
Эта команда обновит зависимости, указанные в pyproject.toml
, и создаст или обновит файл poetry.lock
.
Ruby¶
Bundler¶
Gemfile.lock
¶
- Инициализируйте проект (если еще не сделано):
- Установите зависимости:
или
Создайте lock-file напрямую: