digital-garden/dev/java/JDeps.md
2024-10-19 09:43:09 +03:00

44 lines
2.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
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) -->