Я вижу проблему, когда данный исходный файл, созданный Maven, создает файл класса, отличный от файла, созданного Eclipse.
Конструктор Eclipse оптимизирует следующий метод:
public SomeClass clone() {
SomeClass clone = (SomeClass) super.clone();
return clone;
}
Этот метод явно не нужен, но у меня нет возможности изменить источник, потому что он генерируется.
Какой компоновщик использует Eclipse для компиляции этих классов? Я использую плагин m2Eclipse, который, как я думал, только что вызвал Maven для выполнения сборки. Почему тогда Eclipse думает, что ему нужно выполнить еще одну сборку с другим компоновщиком? Могу ли я отключить этот построитель Eclipse или настроить его для предотвращения оптимизации?
- Версия затмения: 3.7
- Версия m2Eclipse: 1.0.100.20110804-1717 (настроена на использование внешнего Maven)
- Версия Мавена: 2.2.1
Обновить
Я нашел отчет об ошибке Eclipse, в котором описывается, что происходит. Чтобы уточнить, на самом деле это не компилятор Eclipse, который удаляет что-либо, он просто не вводит синтетический метод «моста», который вводит стандартный компилятор JDK. Отчет об ошибке помечен как «Решено — не будет исправлено».
Я до сих пор не нашел способа предотвратить запуск построителя Eclipse после запуска построителя Maven. Но наше исправление состоит в том, чтобы изменить генератор кода, чтобы добавить в сгенерированный код явный serialVersionUID.