Я пишу библиотеку и использую sfl4j для обработки журналов.
Я думаю, что это хорошая идея, поскольку каждый орган может предоставить свою собственную реализацию, а затем журнал, предоставленный моим приложением, будет обрабатываться правильно.
Но я не знаю, должен ли я предоставлять реализацию в качестве переходной зависимости или нет.
Пример:
Если я только предоставлю:
<dependencies>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.6.1</version>
</dependency>
</dependencies>
Пользователь моей библиотеки может выбрать реализацию, но если он просто добавит мою библиотеку без чтения конфигурации, она не будет работать
В противном случае, если я предоставлю это:
<dependencies>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.6.1</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.6.1</version>
</dependency>
</dependencies>
Моя библиотека будет работать правильно только при добавлении к ней зависимости, но если пользователь захочет использовать другой slf4j, ему придется исключить мою.
Что вы думаете об этом?