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

时间:2012-07-10 14:28:19

标签: java maven maven-3 apt

我想在我的Maven 3.0.4项目中运行以下基本过程。我已经掌握了所有基础知识并且没有遇到任何问题,但在第3步遇到了问题。出于某种原因,基本的解决方案是逃避我,因为它似乎应该非常明显。

  1. 运行基本清理/安装(无注释处理)
  2. 请求运行网站构建
  3. 在网站构建开始之前,使用在初始步骤中编译的注释处理器类对已编译的类运行注释处理
  4. 我尝试设置注释处理目标如下:

    <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
    

1 个答案:

答案 0 :(得分:0)

我的猜测是该插件不包括当前项目本身的类路径。最好的解决方案是尽可能将注释处理器分离到自己的(子)模块中。如果您不能这样做,您可以将此项目本身添加为插件的依赖项(使用插件节点下的<dependencies>部分)。

作为诊断说明,您可以使用'-X'参数运行maven以查看有关构建的详细信息。这应该会显示插件执行时类路径上的内容。