Allin Program

启用 JPS 增量注解处理

今天编译一个新项目的时候出现以下告警信息:

java: JPS incremental annotation processing is disabled. Compilation results on partial recompilation may be inaccurate. Use build process "jps.track.ap.dependencies" VM flag to enable/disable incremental annotation processing environment.

单从字面意思来看:JPS增量注解处理已禁用,部分重新编译的结果可能不准确。
因为编译器无法充分考虑所有注解的影响。

解决方案——启用JPS增量注解处理

在IntelliJ IDEA 中,可以通过以下步骤启用:

打开“File” -> “Settings” -> “Build, Execution, Deployment” -> “Compiler” -> “Java Compiler”。

在“Additional command line parameters”中添加以下内容 -Djps.track.ap.dependencies=true,如下图所示。
image.png

不使用IDEA而是希望仅在Maven或Gradle中配置:

在Maven项目中配置JPS增量注解处理,可以通过在pom.xml文件中添加以下配置来实现:

<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-compiler-plugin</artifactId>
      <version>3.8.1</version>
      <configuration>
        <compilerArgs>
          <arg>-Djps.track.ap.dependencies=true</arg>
        </compilerArgs>
      </configuration>
    </plugin>
  </plugins>
</build>

在Gradle项目中配置JPS增量注解处理,可以通过在build.gradle文件中添加以下配置来实现:

compileJava {
  options.compilerArgs += '-Djps.track.ap.dependencies=true'
}