- делает разрешение модуля bar необязательным во время выполнения,
Код: Выделить всё
requires static bar; - позволяет каждому модулю, который читает foo, также читать bar. Согласно Javadoc java.lang.module это также означает, что bar должен присутствовать как во время компиляции, так и во время выполнения.
Код: Выделить всё
requires transitive bar;
Код: Выделить всё
module foo {
requires static transitive bar;
}
Согласно Javadoc:
Код: Выделить всё
requiresДирективы где «шаг 1» описывает вычисление замыкания набора корневых модулей X, требующее транзитивного отношения Y.
Если я правильно интерпретирую это, если директива require является одновременно статической и транзитивной, модуль foo не обязателен, так как «шаг 1» требует его присутствия.
Мы часто получаем такие директивы при использовании bnd-maven-plugin, который сопоставляет директиву OSGi разрешения:=optional со статической, а директиву Uses:=... с транзитивной.
Подробнее здесь: https://stackoverflow.com/questions/776 ... compatible
Мобильная версия