автоматически сгенерированные Java-файлы в Eclipse - PullRequest
0 голосов
/ 22 января 2019

Как понять, какие файлы создаются автоматически в огромном Java-проекте, разработанном в Eclipse?

Я новичок.Например, понемногу я обнаруживаю, что многие файлы создаются с помощью плагина xcore.Другое с xtend.Просто изучаю код и пытаюсь учиться, и это нормально.Вопрос в следующем: есть ли способ понять, какие файлы нужно изменить, чтобы автоматически восстановить другие?Моя ошибка состояла в том, что я начал изменять все файлы вручную.

1 Ответ

0 голосов
/ 22 января 2019

Обычно вы устанавливаете разные исходные каталоги для своего кода и сгенерированного кода.

Например, проект, использующий Xtend и EMF, будет иметь следующие исходные каталоги в своем пути сборки:

  • src содержит все файлы Java и Xtend, которые вы пишете
  • xtend-gen содержит сгенерированные файлы Java, созданные Xtend
  • src-gen содержит сгенерированные файлы Java, созданные EMF

В этой настройке вы должны редактировать файлы только в src.Файлы в xtend-gen будут обновляться автоматически, если вы редактируете файлы Xtend в src.Файлы в src-gen будут обновлены, если вы обновите модель.

Я не очень знаком с Xcore, но, поскольку он основан на EMF, я думаю, что вам просто нужно установить свойство "каталог модели"the genmodel.

Это должно сделать различие между вашим кодом и сгенерированным кодом более четким.Вы все еще можете чувствовать необходимость иногда модифицировать сгенерированный код.EMF фактически поддерживает это, добавляя специальные аннотации в сгенерированный файл, но я бы не рекомендовал этого, потому что очень трудно увидеть, был ли файл изменен таким образом.Если вам действительно нужно изменить сгенерированное поведение, лучше использовать первый подход, описанный в этой статье о правильном переопределении сгенерированного кода EMF .По сути, вы расширяете и переопределяете методы некоторых сгенерированных классов и фабрики, а затем используете точки расширения Eclipse для замены сгенерированной фабрики на расширенную.


Если вы смотрите на проект кого-то другого и неНе знаете, какие инструменты генерирования кода используются:

Вы должны попытаться по возможности спросить авторов или проверить, есть ли документация по созданию проекта.В противном случае, я думаю, вам нужно проанализировать структуру проекта, чтобы увидеть, какие плагины используются для генерации кода.Это может быть немного сложно, если вы еще не знаете, какие плагины на самом деле могут генерировать код, хотя.

  • Проверьте Eclipse "Project Nature", чтобы увидеть, какие плагины используются дляbuild
  • Проверьте конфигурацию сборки (Ant, Maven, Gradle) на наличие плагинов, которые могут генерировать код
  • Найдите специальные файлы (xcore, genmodel и т. д.) и выясните, к какому
  • Проверьте, настроены ли какие-либо обработчики аннотаций, и проверьте, создают ли они какие-либо файлы
  • (только Xtend) Проверьте, есть ли активные аннотации, и проверьте, создают ли они какие-либо файлы
  • Проверьте, если @Generatedв коде используются аннотации, которые используются для маркировки сгенерированных файлов

Если вы определили все инструменты, попробуйте изменить каталог назначения модели и заново создать код.Затем сравните сгенерированные файлы с исходным кодом - все дублированные файлы, скорее всего, сгенерированы.

...