15

我使用 JSR 269 作为在编译期间分析代码并在需要时使其失败的一种方式。我在 maven 中显示注释处理器的输出时遇到问题(Ant 确实显示了输出)我正在使用 javax.annotation.processing.Messager 来显示警告和错误,但在 maven 中我看不到它的输出。(我确实知道它会运行,因为它会生成应有的代码)。有任何想法吗?

4

2 回答 2

16

我认为您在编译器插件MCOMPILER-66中遇到了 Maven 错误或更好的错误。在注释处理方面,编译器插件有几个问题,例如MCOMPILER-62。真正最好的选择 imo 是禁用编译器插件的注释处理并使用maven-processor-plugin。在这篇博文中,您可以了解如何使用它。它看起来像这样:

   <plugins>
    <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
            <source>1.6</source>
            <target>1.6</target>
            <compilerArgument>-proc:none</compilerArgument>
        </configuration>
    </plugin>
    <plugin>
        <groupId>org.bsc.maven</groupId>
        <artifactId>maven-processor-plugin</artifactId>
        <version>1.3.7</version>
        <executions>
            <execution>
                <id>process</id>
                <goals>
                    <goal>process</goal>
                </goals>
                <phase>process-sources</phase>
            </execution>
        </executions>
        <dependencies>
            <dependency>
                <groupId>org.hibernate</groupId>
                <artifactId>hibernate-jpamodelgen</artifactId>
                <version>1.1.0.Final</version>
                <scope>compile</scope>
            </dependency>
        </dependencies>
    </plugin>

还要注意注释处理器依赖项如何很好地仅限于插件。

于 2012-10-11T11:53:37.113 回答
4

您可以通过在 maven-compiler-plugin 配置中启用 showWarnings 标志来做到这一点:

<build>
  <plugins>
    <plugin>
       <groupId>org.apache.maven.plugins</groupId>
       <artifactId>maven-compiler-plugin</artifactId>
       <configuration>
         <showWarnings>true</showWarnings>
       </configuration>
    </plugin>
  </plugins>
</build>

另请参阅https://github.com/Cosium/annotation-processor-logger#enable-all-logging-levels

于 2018-08-10T07:57:10.143 回答