Вы правы, это вопрос процесса.Я интерпретирую ваш вопрос как желание избежать объявления конкретной версии библиотеки как зависимости в реализации.Намерение состоит в том, чтобы обновить любой компонент независимо, в частности, вы хотите иметь возможность обновлять библиотеку без необходимости перестраивать реализацию.
Вам, очевидно, потребуется перестроить и заново развернуть что-то , если выизменить.Тем не менее, я вижу два шага, которые должны решить вашу проблему.Я собираюсь назвать ваши компоненты "lib" и "app".
- Создать пустой проект-оболочку, зависящий (scope = runtime) от lib и app.Эта обертка - то, что вы развернете.Когда вы обновляете lib или приложение, вам нужно только обновить версию этой зависимости в проекте-оболочке.Когда вы «соберете» (compile is no-op) и протестируете проект-обертку, вы убедитесь, что старое / новое приложение по-прежнему работает с новой / старой библиотекой, и вы можете развернуть обновление.Конечно, если ваши тесты не пройдены, вам нужно будет обновить зависимость lib приложения, чтобы увидеть, решает ли проблема пересборка, и попытаться найти, в каком компоненте есть ошибка.Так что, на мой взгляд, это лишь промежуточное решение.
- Лучше также создать компонент lib-api, который объявляет интерфейс между lib и app.Сделайте lib и app зависимыми от lib-api, но приложение не зависит от конкретной версии lib.Вы, возможно, по-прежнему хотите использовать проект-оболочку, как описано выше, чтобы упростить развертывание (поскольку вам потребуется развернуть как lib, так и приложение).Но если вам не нужно влиять на API библиотеки, вы можете быть уверены, что ваши изменения в lib или приложении защищены друг от друга и не требуют (не могут) перестраивать.Это может упростить отслеживание любых ошибок.Если вам нужно обновить lib-api, вам, очевидно, нужно будет перестроить все, но в любом случае это будет правдой, и, по крайней мере, так будет показано в структуре проекта.
Надеюсь, это имеет смысл для васи я правильно истолковал ваш вопрос.