我对Maven不是很有经验,当然对makefiles也不是。
我有一个makefile,它的步骤是这样的:
do-build:
mvn clean install -DskipTests -Dspotbugs.skip=true -Dpmd.skip=true -Dmaven.javadoc.skip=true
字符串
在bash shell中,我可以直接运行make do-build
命令和指定的Maven命令。
然而,在IntelliJ中查看makefile,它在do-build
旁边的槽中显示一个绿色“>”图标,但单击该图标会给我一个错误Fatal error compiling: error: release version 17 not supported
,我无法解决。为什么??
我已确保:
update-alternatives --config java
被正确设置为corretto-17。which java
报告正确的Java二进制文件。$JAVA_HOME
指向这个二进制文件。- IntelliJ设置> Java编译器>项目字节码版本:设置为17。
- IntelliJ Settings > Maven > JDK for importer:设置为17。
- IntelliJ Project Structure > Project:SDK & Language level:都设置为17。
- IntelliJ项目结构>模块:语言级别:设置为17。
.idea/misc.xml
中的component
元素列出了JDK 17。- 我的
pom.xml
文件列表:
properties > java.version: 17
型
*
properties > maven.compiler.source: ${java.version}
型
*
properties > maven.compiler.target: ${java.version}
型
*
build > plugins > plugin > artifactId maven-compiler-plugin > configuration > source: ${java.version}
型
*
build > plugins > plugin > artifactId maven-compiler-plugin > configuration > target: ${java.version}
型
- “选择IDE的 Boot 选项”设置为17。
- 我已经尝试过禁用IntelliJ缓存等。
简而言之,我已经没有东西可查了。但一定有什么东西...?
FWIW,这是Ubuntu MATE 22.04的全新安装。
1条答案
按热度按时间hxzsmxv21#
事实证明,问题是IntelliJ IDEA uses wrong $JAVA_HOME when running things inside it, and I can't change it,这是一个不同类型的问题(这里有很多很多问题)。
最后,我将
echo $JAVA_HOME
放入我的makefile中,以查看 * 在IDE中运行时 * 它所指向的内容,然后我为该路径创建了一个符号链接,指向我的实际JDK。这不是针对根本问题的修复,而是一个实际的解决方案。