从源码安装GridDB Java客户端时Maven编译报错求助
从源码安装GridDB Java客户端时Maven编译报错求助
你好呀,我来帮你梳理下这个问题的排查方向~
你遇到的这个报错是因为Maven默认用的Java编译版本太老(JDK 1.5/5),而你的JDK 11已经不支持这个版本的编译目标了。你说改了pom.xml的1.8没用,可能是这几个原因:
首先,要确认你修改的
pom.xml是不是正确配置了maven-compiler-plugin,而且插件版本得是支持高版本JDK的。比如旧版本的maven-compiler-plugin可能不识别source/target 11,你可以试试把插件配置写成这样:<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> <!-- 这个版本支持JDK 8-13,适配你的JDK11 --> <configuration> <source>11</source> <target>11</target> <release>11</release> <!-- 这个参数更稳妥,统一指定编译用的JDK版本,避免source/target不一致的问题 --> </configuration> </plugin> </plugins> </build>其次,检查下GridDB的源码是不是有父级pom.xml(比如项目根目录下的pom文件),很多多模块项目会把编译配置统一写在父pom里,如果你只改了java_client子模块的pom,会被父pom的配置覆盖,这时候得去根目录的父pom里修改对应的编译器配置。
然后,确认Maven本身使用的JDK版本是不是你安装的11.0.2:执行
mvn -v命令,看输出里的Java version是不是11.0.2。有时候系统里装了多个JDK,Maven可能默认调用了旧版本,这时候你需要设置JAVA_HOME环境变量指向JDK11的安装目录,或者在Maven的conf/settings.xml里指定JDK版本:<profiles> <profile> <id>jdk-11</id> <activation> <activeByDefault>true</activeByDefault> </activation> <properties> <maven.compiler.source>11</maven.compiler.source> <maven.compiler.target>11</maven.compiler.target> <maven.compiler.release>11</maven.compiler.release> </properties> </profile> </profiles>最后,试试清理掉之前的编译缓存再重新编译:执行
mvn clean install -U,-U参数会强制Maven更新依赖,同时clean会彻底删除之前的target目录,避免旧的编译残留影响。
你可以按这个顺序一步步排查,应该能解决这个编译问题~
内容来源于stack exchange
相关产品推荐
相关产品推荐

