Спецификация аннотации @Override
изменена в Java 1.6. В Java 1.5 компилятор не разрешал аннотацию @Override
для реализованных методов интерфейса, но в 1.6 это разрешено. Первый результат поиска, который я нашел, это сообщение в блоге здесь. . Это не было хорошо задокументировано , но оно изменилось.
Eclipse добавляет его, потому что ваш Eclipse настроен на соответствие 1.6. Вы должны попытаться сохранить среду сборки и затмения в одной и той же версии Java. Мне непонятно, что вы указали, что Cruise Control использует Java 5, независимо от того, компилируется ли он с использованием отдельного JDK6 или нет.
Отдельно от приведенных выше правил аннотации 1.5 против 1.6 @Override
, помните, что Eclipse имеет собственную реализацию компилятора (не javac
) и иногда будет вести себя по-разному. Когда что-то компилируется в Eclipse, но не в Ant или Maven, вам нужно найти способ сделать оба компилятора счастливыми.