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

pom.xml中maven.compiler.target为何自动变为11.0.2并引发编译错误?

Maven中指定java.version为11却自动变为11.0.2导致编译错误

我的pom.xml中配置了如下属性:

<properties>
        <java.version>11</java.version>
        <maven.compiler.source>${java.version}</maven.compiler.source>
        <maven.compiler.target>${java.version}</maven.compiler.target>
        <maven.compiler.compilerVersion>${java.version}</maven.compiler.compilerVersion>
</properties>

但查看effective-pom时发现这些属性值被替换为:

<maven.compiler.compilerVersion>11.0.2</maven.compiler.compilerVersion>
    <maven.compiler.source>11.0.2</maven.compiler.source>
    <maven.compiler.target>11.0.2</maven.compiler.target>

(本地JDK版本为11.0.2)

这导致执行mvn compile时出现错误:Error: Java: invalid target release: 11.0.2

发布问题30分钟后发现新信息:这些属性值被settings.xml中激活的同名profile覆盖,该profile配置如下:

<profile>
    <id>java11</id>
    <activation>
        <jdk>11</jdk>
    </activation>
    <properties>
        <java.version>11</java.version>
        <maven.compiler.source>${java.version}</maven.compiler.source>
        <maven.compiler.target>${java.version}</maven.compiler.target>
        <maven.compiler.compilerVersion>${java.version}</maven.compiler.compilerVersion>
    </properties>
</profile>

但问题依旧:settings.xml中<java.version>的值同样是11,为何maven.compiler相关属性展开后变成11.0.2?所有配置文件中均未手动指定过11.0.2这个版本号。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 07:03:31