自Java 9以来的注释处理器发现过程

自Java 9以来的注释处理器发现过程,java,java-9,annotation-processing,java-10,java-11,Java,Java 9,Annotation Processing,Java 10,Java 11,我正在用Maven构建一个Java11应用程序 我有一个模块化的注释处理器作为依赖项,我希望它能被javac发现并运行,但我不能让它按预期工作。(或许我的期望是错误的?) 在我的模块信息文件中,我有为处理器提供了…,在处理器jar中的META-INF/services中没有任何文件,这是ServiceLoader工作的新方式,对吗?此处理器jar在--module path属性中传递给javac,但未执行任何处理器 我尝试在 但是这个发现过程从Java9开始就不适合我了 尽管我的处理器jar位于

我正在用Maven构建一个Java11应用程序

我有一个模块化的注释处理器作为依赖项,我希望它能被javac发现并运行,但我不能让它按预期工作。(或许我的期望是错误的?)

在我的
模块信息
文件中,我有
为处理器提供了…
,在处理器jar中的
META-INF/services
中没有任何文件,这是
ServiceLoader
工作的新方式,对吗?此处理器jar在
--module path
属性中传递给javac,但未执行任何处理器

我尝试在

但是这个发现过程从Java9开始就不适合我了

尽管我的处理器jar位于modulepath中,但在我使用
--processor module path
手动指定处理器jar之前,找不到处理器

因此有两个问题:

  • Javac在modulepath中找不到注释处理器
  • Maven编译器插件没有任何方法来指定模块化注释处理器,除了原始

  • 我遗漏了什么吗?

    --处理器模块路径是正确的选择,您不应该期望javac在用--module path指定给javac的模块路径上找到注释处理器。@AlanBateman我可以问一下为什么不一致吗?如果未指定
    --处理器路径
    ,则javac将在
    --类路径
    上定位注释处理器,为什么
    --处理器模块路径
    --模块路径
    不同?
    --processor-module-path=${settings.localRepository}/<path_to_my_jar>