3

我想在我的 Maven 3.0.4 项目中运行以下基本过程。我已经具备了所有基础知识并且没有遇到任何问题,但是在第 3 步遇到了问题。出于某种原因,基本的解决方案让我望而却步,因为它看起来应该非常明显。

  1. 运行基本的清理/安装(无注释处理)
  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
4

1 回答 1

0

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

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

于 2012-07-10T15:14:49.660 回答