Обработка аннотаций Java в JSweet
Я пытаюсь перенести классы модели Java в JavaScript с помощью JSweet. Классы моделей содержат аннотации JPA, такие как @Column
, Транспиляция терпит неудачу, как только она сталкивается import javax.persistence.Column
, Аннотации JPA не имеют отношения к JavaScript и не должны передаваться. Можно ли это сделать без изменения кода Java?
В более общем смысле, есть ли способ заставить JSweet игнорировать операторы импорта, например, когда все ссылки на импортированные пакеты находятся в @Erased
методы?
1 ответ
Обычно JSweet просто стирает неизвестные аннотации, поэтому ваш код должен хорошо переноситься.
Первое, что нужно проверить: есть ли у вас JPA-файл в вашем classpath или в ваших зависимостях Maven? JSweet использует javac, который требует, чтобы все типы были в пути к классам. Я думаю, что @Column
там должна быть аннотация: https://mvnrepository.com/artifact/javax.persistence/persistence-api/1.0.2
Что касается второй части вашего вопроса, JSweet v2 предоставляет API для настройки генерации кода. Смотрите спецификации. В API PrinterAdapter вы можете переопределить needsImport
способ вернуть null
когда импорт не нужен. Однако я считаю, что вам это не нужно для вашего случая, так как аннотации стираются автоматически.