2016-09-19 2 views
1

Предположим, у меня есть веб-приложение и две банки. Веб-приложение зависит от A.jar, и это зависит от B.jarЯвляется ли лучший способ увеличить мой номер версии MAJOR в Maven, если я изменю список зависимостей?

Если я делаю A.jar в зависимости от C.jar, должен ли A.jar быть выпуском 2.0? Если автор веб-приложений не использует Maven, обновление A.jar без добавления C.jar в проект нарушит его код.

Или, наоборот, если я удалю зависимость от A.jar на B.jar, это будет также ОСНОВНАЯ версия? Если автор использовал B.jar транзитивно и не смог явно объявить зависимость в своем pom.xml, то исчезновение транзитивного B.jar с обновлением A.jar нарушит его программу.

+3

если вы отмените обратную совместимость, то да> измените основную версию. –

ответ

1

Если я делаю A.jar в зависимости от C.jar, должен ли A.jar быть выпуском 2.0?

Транзитные зависимости в средах, которые не поддерживают параллельные версии пакетов, вызывают особенно хрупкие и неприятные проблемы зависимости между продуктами для системных администраторов и персонала по поддержке продуктов. Если новый C.jar является крупным (взломанным) обновлением под номером semver rules (#8), вы должны столкнуться с основным номером версии A.jar. Если это незначительное или изменение патча в C.jar, то A.jar должен получить хотя бы один и тот же балл уровня, больше, если A.jar также содержит более высокие изменения уровня, чем C.jar.

Или, наоборот, если я удалю зависимость от A.jar на B.jar, это будет ОСНОВНАЯ версия?

Нет, если нет никаких изменений в интерфейсе, обращенном к клиенту A.jar. Следует позаботиться о том, чтобы вы не удаляли B.jar из системы, у которой есть другие продукты, зависящие от B.jar.