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

安装NullAway时出现Maven编译错误,请求协助解决

解决NullAway Maven编译报错:invalid flag: -Xep:NullAway:ERROR

问题原因

你的编译报错核心是老版本Error Prone与Java17不兼容,同时Spring Boot 3.x环境下依赖的注解包也存在兼容性问题:

  • Error Prone 2.3.4是2019年的版本,完全不支持Java17,无法识别-Xep系列参数,导致javac判定为无效编译flag
  • Spring Boot 3.x基于Jakarta EE规范,你配置的javax.annotation-api属于旧Java EE规范,与当前环境不匹配
  • Maven Compiler Plugin 3.8.1版本过低,对Java17的编译参数支持不完善

解决方案

1. 升级Error Prone到兼容Java17的版本

将error_prone_core版本替换为支持Java17的稳定版,比如2.20.0(NullAway 0.9.7与该版本兼容)。

2. 替换注解依赖为Jakarta版本

移除javax.annotation-api,改用Jakarta EE规范的jakarta.annotation-api:

<dependency>
    <groupId>jakarta.annotation</groupId>
    <artifactId>jakarta.annotation-api</artifactId>
    <version>2.1.1</version>
    <scope>provided</scope>
</dependency>

3. 升级Maven Compiler Plugin版本

Spring Boot 3.3.0推荐搭配maven-compiler-plugin 3.11.0及以上版本,确保对Java17的编译支持:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.11.0</version>
    <configuration>
        <!-- 保留原有的source/target、compilerArgs配置 -->
    </configuration>
</plugin>

4. 确保NullAway与Error Prone版本兼容

NullAway 0.9.7适配Error Prone 2.18.0~2.20.0版本,不要跨版本使用。

修改后的完整pom.xml关键片段

<dependencies>
    <!-- 其他Spring Boot依赖保留 -->
    <dependency>
        <groupId>jakarta.annotation</groupId>
        <artifactId>jakarta.annotation-api</artifactId>
        <version>2.1.1</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>com.uber.nullaway</groupId>
        <artifactId>nullaway</artifactId>
        <version>0.9.7</version>
        <scope>provided</scope>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.11.0</version>
            <configuration>
                <source>17</source>
                <target>17</target>
                <compilerArgs>
                    <arg>-Xplugin:ErrorProne</arg>
                    <arg>-Xep:NullAway:ERROR</arg>
                    <arg>-XepOpt:NullAway:AnnotatedPackages=com.example</arg>
                </compilerArgs>
                <annotationProcessorPaths>
                    <path>
                        <groupId>com.google.errorprone</groupId>
                        <artifactId>error_prone_core</artifactId>
                        <version>2.20.0</version>
                    </path>
                    <path>
                        <groupId>com.uber.nullaway</groupId>
                        <artifactId>nullaway</artifactId>
                        <version>0.9.7</version>
                    </path>
                </annotationProcessorPaths>
            </configuration>
        </plugin>
    </plugins>
</build>

验证

执行mvn clean compile重新编译,即可解决无效flag的报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 17:44:56