Я разрабатываю/поддерживаю библиотеку Java и хочу отслеживать назад-несовместимые изменения между релизами. Этот список может содержать изменения в объявлениях классов, сигнатурах методов и т. Д.Есть ли автоматический способ создания списка изменений интерфейса?
Например, если я (случайно) изменил конструктор, добавив параметр, то я хотел бы включить его в список и предупредить об изменении ,
// before
public MyCar(String name) { ... }
// after (some accidental change)
public MyCar(String name, long mileage) { ... }
// an application using my library depending on this constructor would be broken
// when it updates to the new version
Есть ли автоматический способ создания этого списка? Это похоже на то, что IntelliJ или Gradle должны делать.
Моя команда попыталась проверить запросы на тяну и вручную сохранить CHANGELOG (что, по-видимому, является общим подходом), но это связано с человеческими ошибками. Я ищу автоматический способ, который в идеале может быть частью системы сборки.
Я думаю, я могу добавить строку, описывающую «что было сделано до сих пор, чтобы ее решить». Если вы считаете, что это привлечет спам, тогда укажите очевидный ответ. –
Возможно, вы захотите заглянуть в [проект сниффер животных] (http://mojo.codehaus.org/animal-sniffer/animal-sniffer/index.html) – Mureinik
Как насчет использования системы контроля версий? Например, с git, «git log» предоставит вам список всех коммитов, поэтому, если ваши сообщения о фиксации ясны, он может работать как журнал изменений. –