Maven 3.0.4 - 在编译后执行注解处理器

3
我希望在我的Maven 3.0.4项目中运行以下基本过程。 我已经准备好了所有基础设施,没有遇到任何问题,但在第三步遇到了问题。出于某种原因,基本解决方案让我感到困惑,因为它似乎是非常明显的事情。
  1. 运行基本的clean/install(不进行注释处理)
  2. 请求运行站点构建
  3. 在站点构建开始之前,使用编译在初始步骤中的注释处理器类对编译后的类运行注释处理

我尝试设置注释处理目标如下:

<plugin>
  <groupId>org.bsc.maven</groupId>
  <artifactId>maven-processor-plugin</artifactId>
  <executions>
    <execution>
      <id>process</id>
      <goals>
        <goal>process</goal>
      </goals>
      <phase>pre-site</phase>
      <configuration>
        <outputDirectory>${basedir}/target/generated-documentation</outputDirectory>
        <processors>
          <processor>com.mydomain.MyFancyAnnotationProcessor</processor>
        </processors>
      </configuration>
    </execution>
  </executions>
</plugin>

由于某种原因,这似乎没有起作用。 我觉得我做了一些非常愚蠢的事情,阻止它工作。
我正在使用Maven Annotation Plugin而不是基本的Mojo Apt Plugin。如果有人有一个可行的解决方案,我不介意切换。我尝试了两种方法,没有立即成功的迹象。再次强调,感觉只是我忽略了一些明显的东西。 收到的错误:
[INFO] diagnostic error: Annotation processor 'com.mydomain.MyFancyAnnotationProcessor' not found
[ERROR] error on execute: error during compilation

具体是什么出了问题?它无法运行?它生成错误?你得到了错误的输出...? - jtahlborn
抱歉 - 我已经在底部更新了带有错误的条目。 - user839487
1个回答

0

我猜测插件在其类路径中没有包含当前项目本身。最好的解决方案是,如果可能的话,将注解处理器分离到自己的(子)模块中。如果你不能这样做,你可以尝试将该项目本身作为插件的依赖项添加进去(在插件节点下使用<dependencies>部分)。

作为诊断提示,你可以使用'-X'参数运行maven来查看构建的详细信息。这应该会显示在执行插件时类路径上确切的内容。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接