Java написать код, который просто запускается во время компиляции? - PullRequest
0 голосов
/ 01 октября 2018

можно ли написать "плагин maven" или что-то подобное, что изменяет .java во время компиляции?

Например:

@Entity
... class ... {
  @Id
  long id
}

Я хотел бы закомментироватьвсе аннотации и создайте ORM-Mapping.xml / Persistence в соответствии с сущностями

Ответы [ 3 ]

0 голосов
/ 01 октября 2018

То, что вы описываете, звучит так, как будто вы ищете что-то вроде препроцессора / шаблонизатора C / C ++?

Может быть, обработка аннотаций может помочь вам https://docs.oracle.com/javase/8/docs/api/javax/annotation/processing/Processor.html

Кроме этого -Вывод persistence.xml из ваших аннотаций сущностей - это то, что делает Spring Framework.

0 голосов
/ 02 октября 2018

Это возможно.Project lombok модифицирует скомпилированный код, однако для этого нет открытого API.(См. Как работает lombok? ). Что вам нужно, если вам нужно удалить аннотации?Отключение всех аннотаций во время выполнения, вероятно, нецелесообразно.Если вы просто хотите сгенерировать что-то из аннотаций, найденных в скомпилированных классах, это намного проще

0 голосов
/ 01 октября 2018

Аннотации в основном основаны на файлах конфигурации, которые включают / отключают их распознавание.

Используйте пружинные профили для различения классов конфигурации.Если появится специальный профиль, классы конфигурации не будут распознаны.Решение требует, чтобы все конфигурации конфигурировались в соответствии с профилями Spring.

@Configuration
@Profile("noAnnotations")
public class SomeConfigurationClass
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...