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
相关产品推荐
相关产品推荐

