Есть ли инструмент анализа кода для Java для утверждения зависимостей/незадействований пакетов?Ant/JUnit - Как утверждать зависимости/не зависимости от пакетов?
У меня есть проект, в котором взаимозависимости заполняются между пакетами, которые не должны знать друг о друге - в частности, обратные зависимости, которые должны были быть одним из способов.
Я хотел бы указать, какие пары пакетов (в каком направлении) могут быть зависимыми. В качестве альтернативы может быть указано указание пакетов, которые НЕ могут зависеть друг от друга - или не в обоих направлениях. В идеале это могло бы быть что-то, что могло бы выполняться как часть сборки Ant и/или JUnit, и сбой сборки, если будут введены новые зависимости, в нарушение правил. Затем мы добавим это в наш процесс CI.
Было бы также полезно иметь возможность указывать зависимости на уровне групп пакетов (например, все пакеты и подпакеты в «web» МОЖЕТ быть зависеть от любого пакета в «api» или его подпакетах).
Некоторые особенности в случае необходимости, для моего конкретного проекта:
- версия Java 1.7
- Процесс сборки базируется на Ant (можно обновить до последней версии, если это необходимо)
- Тестирование с JUnit (можно обновить до последней версии, если необходимо)
Спасибо. Выглядит хорошо, я попробую. – Paul
По-прежнему не было возможности проверить, что JDepend делает то, что мне нужно, хотя похоже, что так будет. Поскольку это выглядит хорошо, и я не нашел лучшего выбора, я принял этот ответ. – Paul