jdk编译版本的困惑
由于追求版本稳定角度和老项目遗留,我们往往不得不随时切换jdk编译版本,与当前最新jdk11形同陌路,受jdk不同版本idea切换常常忘记使用诟病已久
idea结合maven配置jdk几种方式
- maven全局setting配置
<profile>
<id>jdk-1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
</profile>
<profile>
<id>jdk-1.7</id>
<activation>
<activeByDefault>false</activeByDefault>
<jdk>1.7</jdk>
</activation>
<properties>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
<maven.compiler.compilerVersion>1.7</maven.compiler.compilerVersion>
</properties>
</profile>
- maven项目中pom配置
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
</properties>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
</configuration>
</plugin>
- idea中 file->setting->java Compiler
- idea中 file->project structure->modules
汇总如下
- 第一种为全局配置,profile切换方便
- 第二种为当前项目中配置,其他项目不受影响,而且优先级比profile高
- 第三和第四相对结合maven配置复杂,而且maven刷新立马失效,觉得个人应该处于不结合maven