Можно ли использовать процессор аннотаций в том же проекте, где он определен?
Пример:
ЦСИ /
- MyAnnotation.java
- path_to_MyAnnotationProcessor.MyAnnotationProcessor.java
- другие классы
- ресурсы
- META-INF / услуги / javax.annotation.processing.Processor
- 1024 * П *
когда я буду запускать mvn clean install
, я буду ожидать, что мой процессор будет обрабатывать классы, помеченные MyAnnotation.
Я не хочу импортировать уже скомпилированный процессор из другой библиотеки, я просто хочу использовать его, как только я определю его в моем src.
Пока я получаю сообщение об ошибке:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.6.1:compile (default-compile) on project my-project: Compilation failure
[ERROR] Annotation processor 'path_to_MyAnnotationProcessor' not found
часть pom.xml, где я исх. к моим процессорам:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven.plugin.compiler}</version>
<configuration>
<source>${version.java}</source>
<target>${version.java}</target>
<annotationProcessors>
<proc>path_to_MyAnnotationProcessor.MyAnnotationProcessor</proc>
</annotationProcessors>
</configuration>
</plugin>
Спасибо всем, особенно @Stefan Ferstl и @yegodm. Решение от yegodm:
«Один способ состоит в том, что два имеют два модуля в одном проекте. Один модуль будет определять аннотации и процессор. Другой будет использовать его в качестве зависимости для установления порядка сборки».