You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Error Prone创建.refaster规则时遇RefasterRuleCompiler插件未找到问题

解决RefasterRuleCompiler插件找不到的问题

检查依赖配置的正确性

  • 确保error_prone_refaster依赖的scope为compile,且版本与Error Prone Core完全匹配,示例配置:
<dependency>
  <groupId>com.google.errorprone</groupId>
  <artifactId>error_prone_refaster</artifactId>
  <version>2.24.0</version> <!-- 和Error Prone Core版本保持一致 -->
  <scope>compile</scope>
</dependency>
  • 不要遗漏error_prone_core依赖,Refaster规则编译必须依赖它:
<dependency>
  <groupId>com.google.errorprone</groupId>
  <artifactId>error_prone_core</artifactId>
  <version>2.24.0</version>
  <scope>provided</scope>
</dependency>

确认Maven Compiler插件配置细节

  • 确保compiler插件明确配置了Error Prone的注解处理器路径,且Refaster相关依赖已加入,示例配置:
<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-compiler-plugin</artifactId>
  <version>3.11.0</version> <!-- 使用支持JDK17的插件版本 -->
  <configuration>
    <release>17</release>
    <annotationProcessorPaths>
      <path>
        <groupId>com.google.errorprone</groupId>
        <artifactId>error_prone_refaster</artifactId>
        <version>2.24.0</version>
      </path>
      <path>
        <groupId>com.google.errorprone</groupId>
        <artifactId>error_prone_core</artifactId>
        <version>2.24.0</version>
      </path>
    </annotationProcessorPaths>
    <compilerArgs>
      <arg>-XDcompilePolicy=simple</arg>
      <arg>-Xplugin:ErrorProne</arg>
      <!-- JDK17必需的模块开放参数 -->
      <arg>--add-opens=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED</arg>
      <arg>--add-opens=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED</arg>
      <arg>--add-opens=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED</arg>
      <arg>--add-opens=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED</arg>
    </compilerArgs>
  </configuration>
</plugin>
  • 注意:不要仅将注解处理器放在普通<dependencies>中,必须通过annotationProcessorPaths声明,否则Maven无法识别Refaster的编译处理器。

清理Maven缓存并重建

  • 执行命令强制更新依赖并清理缓存,避免依赖损坏或版本冲突:
mvn clean install -U
  • 若问题仍存在,手动删除本地仓库中com.google.errorprone目录,再重新拉取依赖。

验证JDK17环境与模块配置

  • 执行mvn -version确认Maven使用的JDK版本为17,避免系统多JDK版本导致环境不一致。
  • 检查.mvn/jvm.config中的模块开放参数是否完整,至少包含:
--add-opens=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED
--add-opens=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED
--add-opens=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED
--add-opens=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED

检查Refaster规则类编写规范

  • 确保规则类正确使用@RefasterRule注解,且代码无语法错误,示例:
import com.google.errorprone.refaster.Refaster;
import com.google.errorprone.refaster.RefasterRule;

@RefasterRule
public class MyRefasterRules {
  public String trimString(String s) {
    return Refaster.anyOf(
        s.trim(),
        s.strip()
    );
  }
}

内容的提问来源于stack exchange,提问作者Alexandru Borza

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 18:52:50