Spring Boot项目pom.xml中gRPC构建报错:无法解析os.detected.classifier
解决Spring Boot中gRPC构建报错:Cannot resolve symbol 'os.detected.classifier'
os.detected.classifier是os-maven-plugin提供的系统属性,用来自动匹配当前操作系统对应的protoc二进制包,报错说明插件没正常生效或配置有问题,试试下面的解决方法:
- 升级
os-maven-plugin版本:1.7.0可能存在兼容问题,换成最新稳定版1.7.1,确保扩展配置正确放在<extensions>节点下(这个插件是Maven扩展,不能放<plugins>里)。 - 强制刷新Maven依赖:执行命令
mvn clean install -U,强制Maven更新插件和依赖缓存。 - 修复IDE识别问题:如果是IDE(比如IntelliJ IDEA)报错,点击右侧Maven面板的刷新按钮,或者执行
mvn idea:idea让IDE重新读取pom配置。 - 手动指定classifier:如果插件自动识别失败,直接硬编码对应系统的值:
- Windows x64:
windows-x86_64 - macOS x64:
osx-x86_64 - macOS ARM64:
osx-aarch_64 - Linux x64:
linux-x86_64
- Windows x64:
修正后的pom.xml示例:
<build> <extensions> <!-- Ensure OS compatibility for protoc --> <extension> <groupId>kr.motd.maven</groupId> <artifactId>os-maven-plugin</artifactId> <version>1.7.1</version> </extension> </extensions> <plugins> <!-- Spring boot / maven --> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> <!-- PROTO --> <plugin> <groupId>org.xolstice.maven.plugins</groupId> <artifactId>protobuf-maven-plugin</artifactId> <version>0.6.1</version> <configuration> <protocArtifact>com.google.protobuf:protoc:3.25.5:exe:${os.detected.classifier}</protocArtifact> <pluginId>grpc-java</pluginId> <pluginArtifact>io.grpc:protoc-gen-grpc-java:1.68.1:exe:${os.detected.classifier}</pluginArtifact> </configuration> <executions> <execution> <goals> <goal>compile</goal> <goal>compile-custom</goal> </goals> </execution> </executions> </plugin> </plugins> </build>
内容的提问来源于stack exchange,提问作者Mahidhar Reddy
相关产品推荐
相关产品推荐

