Вы проверяли эту документацию.Он очень хорошо описывает ваш вариант использования.Если пометить зависимости как необязательные, они не будут преобразованы в транзитивные зависимости в приложении, которое использует вашу библиотеку (даже если область действия compile
).
В отличие от <scope>provided</scope>
, который используется для требуемых зависимостей, которые будутпредоставляемая средой выполнения, зависимость <optional>true</optional>
не обязательно должна требоваться ( Идея состоит в том, что некоторые зависимости используются только для определенных функций в проекте и не будут необходимы, если эта функция неused. ).
Если проект, который использует вашу библиотеку, будет использовать любую функциональность, предоставляемую необязательными зависимостями, проект должен объявить эти зависимости самостоятельно.
Поскольку ваша конфигурация мне кажется правильной, я не знаю причину возникновения проблем.Возможно, ваши необязательные зависимости разрешаются другими библиотеками в версиях, которые вы не ожидаете.Это, конечно, может вызвать проблемы.