Автоматически сгенерированные Java-файлы в Eclipse
Как понять, какие файлы создаются автоматически в огромном Java-проекте, разработанном в Eclipse?
Я новичок. Например, понемногу я обнаружил, что многие файлы создаются с помощью xcore
плагин. Другое с xtend
, Просто изучаю код и пытаюсь учиться, и это нормально. Вопрос в следующем: есть ли способ понять, какие файлы нужно изменить, чтобы автоматически восстановить другие? Моя ошибка состояла в том, чтобы начать изменять все файлы вручную.
1 ответ
Обычно вы устанавливаете разные исходные каталоги для своего кода и сгенерированного кода.
Например, проект, использующий Xtend и EMF, будет иметь следующие исходные каталоги в своем пути сборки:
src
содержит все файлы Java и Xtend, которые вы пишетеxtend-gen
содержит сгенерированные файлы Java, созданные Xtendsrc-gen
содержит сгенерированные файлы Java, созданные EMF
В этой настройке вы должны редактировать только файлы в src
, Файлы в xtend-gen
будет обновляться автоматически, если вы редактируете файлы Xtend в src
, Файлы в src-gen
будет обновлен, если вы обновите модель.
Я не очень знаком с Xcore, но так как он основан на EMF, я думаю, что вам просто нужно установить свойство "model directory" в genmodel.
Это должно сделать различие между вашим кодом и сгенерированным кодом более четким. Вы все еще можете чувствовать необходимость иногда модифицировать сгенерированный код. EMF фактически поддерживает это, добавляя специальные аннотации в сгенерированный файл, но я бы не рекомендовал этого, потому что очень трудно увидеть, был ли файл изменен таким образом. Если вам действительно нужно изменить сгенерированное поведение, лучше использовать первый подход, описанный в этой статье, о правильном переопределении сгенерированного кода EMF. По сути, вы расширяете и переопределяете методы некоторых сгенерированных классов и фабрики, а затем используете точки расширения Eclipse для замены сгенерированной фабрики на вашу расширенную.
Если вы смотрите на проект кого-то другого и не знаете, какие инструменты генерации кода используются:
Вы должны попытаться спросить авторов, если это возможно, или проверить, есть ли документация по созданию проекта. В противном случае, я думаю, вам нужно проанализировать структуру проекта, чтобы увидеть, какие плагины используются для генерации кода. Это может быть немного сложно, если вы еще не знаете, какие плагины могут генерировать код.
- Проверьте Eclipse "Project Nature", чтобы увидеть, какие плагины используются для сборки
- Проверьте конфигурацию сборки (Ant, Maven, Gradle) на наличие плагинов, которые могут генерировать код
- Найдите специальные файлы (xcore, genmodel и т. Д.) И выясните, к каким
- Проверьте, настроены ли какие-либо обработчики комментариев, и проверьте, создают ли они какие-либо файлы.
- (Только Xtend) Проверьте, есть ли активные аннотации и проверьте, создают ли они какие-либо файлы
- Проверить, если
@Generated
аннотации используются в коде, который используется для маркировки сгенерированных файлов
Если вы определили все инструменты, попробуйте изменить каталог назначения модели и восстановить код. Затем сравните сгенерированные файлы с вашим исходным кодом - все дублированные файлы, скорее всего, сгенерированы.