maven.compiler.source
, maven.compiler.target
这两个属性值来指定jdk版本maven.compiler.source
maven.compiler.target
maven.compiler.source
maven.compiler.target
在pom.xml中的位置
<project>
<properties>
<maven.compiler.source>21maven.compiler.source>
<maven.compiler.target>21maven.compiler.target>
properties>
project>
在settings.xml中的位置
<settings>
<profiles>
<profile>
<activation>
<activeByDefault>trueactiveByDefault>
activation>
<properties>
<maven.compiler.source>21maven.compiler.source>
<maven.compiler.target>21maven.compiler.target>
properties>
profile>
profiles>
settings>
在spring项目中, 用java.version
来统一设置
maven-compiler-plugin
这个插件来指定jdk版本<plugin>
<groupId>org.apache.maven.pluginsgroupId>
<artifactId>maven-compiler-pluginartifactId>
<version>3.9.6version>
<configuration>
<source>21source>
<target>21target>
configuration>
plugin>
在pom.xml中的位置
<project>
...
<build>
...
<plugins>
<plugin>
<groupId>org.apache.maven.pluginsgroupId>
<artifactId>maven-compiler-pluginartifactId>
<version>3.9.6version>
<configuration>
<source>21source>
<target>21target>
configuration>
plugin>
plugins>
...
build>
...
project>
在settings.xml中的位置 , 好像用不了
<settings>
...
<profiles>
<profile>
<id>profile-maven-compiler-pluginid>
<activation>
<activeByDefault>trueactiveByDefault>
activation>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.pluginsgroupId>
<artifactId>maven-compiler-pluginartifactId>
<version>3.9.6version>
<configuration>
<source>17source>
<target>17target>
configuration>
plugin>
plugins>
build>
profile>
profiles>
...
settings>
settings.xml 中的属性写在 settingprofilesprofileproperties中,位于第5层
<settings>
<profiles>
<profile>
<id>jdk-version-21id>
<activation>
<activeByDefault>trueactiveByDefault>
activation>
<properties>
<maven.compiler.source>21maven.compiler.source>
<maven.compiler.target>21maven.compiler.target>
properties>
profile>
profiles>
<activeProfiles>
<activeProfile>jdk-version-21activeProfile>
activeProfiles>
settings>
去掉注释
<profiles>
<profile>
<id>jdk-version-21id>
<activation>
<activeByDefault>trueactiveByDefault>
activation>
<properties>
<maven.compiler.source>21maven.compiler.source>
<maven.compiler.target>21maven.compiler.target>
properties>
profile>
profiles>
<activeProfiles>
<activeProfile>jdk-version-21activeProfile>
activeProfiles>
只用
激活, 可以不要
和
<profiles>
<profile>
<activation>
<activeByDefault>trueactiveByDefault>
activation>
<properties>
<maven.compiler.source>21maven.compiler.source>
<maven.compiler.target>21maven.compiler.target>
properties>
profile>
profiles>
只用
激活 , 则可以不要
<profiles>
<profile>
<id>jdk-version-21id>
<properties>
<maven.compiler.source>21maven.compiler.source>
<maven.compiler.target>21maven.compiler.target>
properties>
profile>
profiles>
<activeProfiles>
<activeProfile>jdk-version-21activeProfile>
activeProfiles>
<settings>
<profiles>
<profile>
<id>set-jdk-versionid>
<activation>
<activeByDefault>trueactiveByDefault>
activation>
<properties>
<jdk-version>21jdk-version>
<maven.compiler.source>${jdk-version}maven.compiler.source>
<maven.compiler.target>${jdk-version}maven.compiler.target>
properties>
profile>
profiles>
<activeProfiles>
<activeProfile>set-jdk-versionactiveProfile>
activeProfiles>
settings>
一处设置,双重激活
<profiles>
<profile>
<id>set-JdkVersionid>
<activation>
<activeByDefault>trueactiveByDefault>
activation>
<properties>
<JdkVersion>21JdkVersion>
<maven.compiler.source>${JdkVersion}maven.compiler.source>
<maven.compiler.target>${JdkVersion}maven.compiler.target>
properties>
profile>
profiles>
<activeProfiles>
<activeProfile>set-JdkVersionactiveProfile>
activeProfiles>
在pom.xml中可以用设置属性或者设置插件两种方法来设置jdk版本
<project>
<properties>
<maven.compiler.source>21maven.compiler.source>
<maven.compiler.target>21maven.compiler.target>
properties>
project>
<maven.compiler.source>21maven.compiler.source>
<maven.compiler.target>21maven.compiler.target>
<project>
...
<build>
...
<plugins>
<plugin>
<groupId>org.apache.maven.pluginsgroupId>
<artifactId>maven-compiler-pluginartifactId>
<configuration>
<source>21source>
<target>21target>
configuration>
plugin>
plugins>
...
build>
...
project>
<plugins>
<plugin>
<groupId>org.apache.maven.pluginsgroupId>
<artifactId>maven-compiler-pluginartifactId>
<configuration>
<source>21source>
<target>21target>
configuration>
plugin>
plugins>
两种方法都用上, , 插件的优先级高于属性
<properties>
<project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
<JdkVersionOfThisPom>17JdkVersionOfThisPom>
<java.version>${JdkVersionOfThisPom}java.version>
<maven.compiler.source>${JdkVersionOfThisPom}maven.compiler.source>
<maven.compiler.target>${JdkVersionOfThisPom}maven.compiler.target>
<maven.compiler.compilerVersion>${JdkVersionOfThisPom}maven.compiler.compilerVersion>
properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.pluginsgroupId>
<artifactId>maven-compiler-pluginartifactId>
<configuration>
<source>${JdkVersionOfThisPom}source>
<target>${JdkVersionOfThisPom}target>
<compilerVersion>${JdkVersionOfThisPom}compilerVersion>
configuration>
plugin>
plugins>
build>