在构建Maven站点时,为什么我的注释处理器会运行两次并破坏构建?

时间:2013-02-07 08:46:08

标签: maven maven-site-plugin

我有一个使用annotation processor plugin生成Hibernate JPA 2 Metamodel Generator的JPA条件类的构建。

在执行普通mvn clean package时这很有效,但是当我构建网站时,它会失败:

[INFO] --- maven-processor-plugin:2.1.0:process (generate-jpa-metamodel) @ phtool-api ---
[INFO] Source directory: C:\jp\esv-projects\phtool\phtool-api\target\generated-sources\jpa added
[INFO] javac option: -cp
[INFO] javac option: ...
[INFO] javac option: -proc:only
[INFO] javac option: -processor
[INFO] javac option: org.hibernate.jpamodelgen.JPAMetaModelEntityProcessor
[INFO] javac option: -d
[INFO] javac option: C:\jp\esv-projects\phtool\phtool-api\target\classes
[INFO] javac option: -s
[INFO] javac option: C:\jp\esv-projects\phtool\phtool-api\target\generated-sources\jpa
[INFO] diagnostic Note: Hibernate JPA 2 Static-Metamodel Generator 1.2.0.Final
[INFO] diagnostic C:\jp\projects\phtool\phtool-api\target\generated-sources\jpa\phtool\impl\resource\ImageImpl_.java:10: error: duplicate c
lass: phtool.impl.resource.ImageImpl_

我注意到该插件在网站生成期间运行了两次,但我不知道为什么。也许这是一个众所周知的Javadoc plugin bug

1 个答案:

答案 0 :(得分:0)

现在通过父POM的更改解决了问题。我无法确切地说出哪个更改解决了问题,但这里是我POM中的相关版本:

      <groupId>org.bsc.maven</groupId>
      <artifactId>maven-processor-plugin</artifactId>
      <version>2.2.4</version>

      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-compiler-plugin</artifactId>
      <version>3.1</version>

      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-site-plugin</artifactId>
      <version>3.3</version>

      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-javadoc-plugin</artifactId>
      <version>2.9</version>

请注意,Javadoc插件的版本没有改变!