Как обеспечить соблюдение границ модулей в Java <= 8

Я хочу модулировать монолитное приложение, используя модули Java (представленные в Project Jigsaw).

К сожалению, в настоящее время я застрял на использовании Java 8. Я бы хотел собрать эти модули (jar-файлы) в любом случае, но без возможности использования файла module-info.java для объявления зависимостей и экспортируемого API.

Несколько недель назад я наткнулся на API/framework, который позволяет определять почти то же самое, что вы можете делать в файле module-info.java. Его можно использовать в тестах JUnit, чтобы заставить модули не использовать внутренние компоненты другого модуля, и только тот модуль может обращаться к модулям, от которых он явно зависит.

Конечно, у вас нет поддержки со стороны компилятора или IDE, но вы можете принудительно установить доступ с помощью JUnit. К сожалению, я больше не нахожу проект, который предоставляет API.

Кто-нибудь может помочь?

Btw. если есть еще один хороший подход, кроме модульного теста, пожалуйста, дайте мне знать тоже!

1 ответ

Решение

https://www.archunit.org/ - это то, что я искал.

Другие вопросы по тегам