Опция процессора аннотаций компилятора Java не прошла правильно - PullRequest
0 голосов
/ 18 апреля 2019

Я пишу Java-процессор аннотаций для сбора метаданных из аннотаций в теле кода. Я хочу, чтобы выходной файл начинался с версии проекта maven. Глядя на документацию javac для Oracle java 8 , выясняется, что я смогу передать версию проекта в качестве опции процессору аннотаций с использованием нотации -A key=value. Поэтому я настроил maven-compiler-plugin для установки опции core.versionId для версии проекта следующим образом:

<configuration>
  <compilerArgs>
    <arg>-A core.versionId=${project.version}</arg>
  </compilerArgs>
</configuration>

Однако, когда я компилирую, я получаю следующую ошибку:

Fatal error compiling: key in annotation processor option '-A core.versionId=1.7.0-SNAPSHOT' is not a dot-separated sequence of identifiers

Кажется, что project.version был правильно вставлен, но компилятору не удалось обработать опцию -A, как объявлено. Я, должно быть, что-то упускаю, но я не могу понять, что это такое, и не могу найти упоминания об этой проблеме. Любая помощь высоко ценится.

Обновление: ошибка исчезнет, ​​если я уберу пробел, сделав аргумент -Acore.versionId=${project.version}, но в этом случае опция core.versionId не отображается в процессоре аннотаций.

1 Ответ

0 голосов
/ 18 апреля 2019

Оказывается, что критическая часть информации была исключена из первоначального вопроса. Компилируемый модуль также требует создания AspectJ, который перезапускает компилятор. Процессор аннотаций действительно работал и выдавал правильный вывод на этапе компиляции, но сразу же перезаписывался вторым прогоном процессора аннотаций на этапе ткачества AspectJ. Добавление небольшого количества конфигурации к предложению aspectj-maven-plugin решило проблему:

<configuration>
  <proc>none</proc>
</configuration>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...