Нет необходимости делать это, но вам нужно правильно указывать свои версии.
Ваша первая версия пакета экспортирует "example.interfaces" версию 1.0.Это отлично.Пользовательский пакет должен импортировать версию "[1.0, 2.0)".Другими словами, от 1.0 до, но не включая версию 2.0.
Теперь вы говорите, что хотите добавить некоторые методы в интерфейсы.Такое изменение обратно совместимо для потребителей интерфейса, но не для производителей.Способ обозначить такого рода изменения состоит в том, чтобы поднять вторую часть версии, то есть «второстепенный» сегмент.Таким образом, ваш обновленный пакет интерфейсов должен экспортировать «example.interfaces» версии 1.1.
Теперь ваша новая версия интерфейса может напрямую использоваться пользовательским пакетом, потому что 1.1 попадает в диапазон [1.0, 2.0).Нет необходимости экспортировать тот же интерфейс, что и в 1.0 - фактически, вы НЕ ДОЛЖНЫ этого делать, потому что это подразумевает, что интерфейс не изменился.Но это изменилось в несовместимом с производителями способе.
Например, предположим, у вас есть комплект производителя, который реализует оригинальный интерфейс.Следует использовать следующий диапазон импорта: [1.0, 1.1).Этот пакет НЕ должен видеть обновленный интерфейс, потому что он не сможет реализовать новые методы, и действительно он не увидит обновленный интерфейс, потому что 1.1 находится за пределами диапазона [1.0, 1.1).Если вы пишете нового производителя, который поддерживает обновленный интерфейс, он должен использовать диапазон [1.1, 1.2).
Прочтите документ OSGi Semantic Versioning (предупреждение в формате PDF) для получения более подробной информации о том, как указать версии экспорта и диапазоны импорта.