digital-garden/dev/java/JDeps.md

44 lines
2.8 KiB
Markdown
Raw Normal View History

2024-10-19 09:43:09 +03:00
---
aliases:
tags:
- maturity/🌱
date: 2024-10-15
zero-link:
parents:
linked:
---
JDeps — это инструмент для анализа зависимостей модулей и пакетов, который был введён в [[../../../../knowledge/dev/java/JDK 8|JDK 8]], ещё до появления модульной системы [[Java Platform Module System|JPMS]]. Основная задача JDeps — помочь разработчикам понять, как модули и пакеты связаны друг с другом внутри проекта.
Основные возможности:
- Показывает, какие модули используются в проекте, какие зависимости между ними существуют и какие модули вызывают друг друга.
- Позволяет анализировать, какие библиотеки и классы реально используются, что помогает очищать проект от лишних зависимостей
Пример запуска Jdeps
```bash
jdeps --multi-release 17 --ignore-missing-deps -q -recursive --print-module-deps -cp 'project-core/build/lib/boot/*':'project-core/build/lib/main/*':'project-core/build/app/*' project-core/build/app/*
Output:
jdk.zipfs,jdk.management,jdk.crypto.cryptoki,java.security.jgss,jdk.crypto.ec
```
- `--multi-release 17`: указывает на использование многоверсионного JAR-файла для JDK 17, что позволяет учитывать разные версии классов для разных версий JDK.
- `--ignore-missing-deps`: игнорирует отсутствующие зависимости, чтобы избежать ошибок при их отсутствии.
- `-q`: отключает подробный вывод, что делает команду менее «шумной» и оставляет только ключевые данные.
- `-recursive`: указывает JDeps анализировать зависимости всех модулей рекурсивно.
- `--print-module-deps`: выводит список всех модулей, которые требуются для работы проекта.
- `-cp`: указывает путь к классам и библиотекам проекта.
***
## Мета информация
**Область**:: [[../../meta/zero/00 Java разработка|00 Java разработка]]
**Родитель**::
**Источник**::
**Создана**:: [[2024-10-15]]
**Автор**::
### Дополнительные материалы
- [[JLink]]
### Дочерние заметки
<!-- QueryToSerialize: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->