Maven编译项目设置jdk版本

  • 问题

maven打包编译时自动切换jdk5。

idea打开新的项目,通过maven对其打包的时候,提示是jdk5环境!

本能的想到新项目是否 子模块未指定jdk版本。于是进行了如下图操作。

操作1.png
操作2.png

以前遇到过类似的事情,idea打开新项目有时候会默认使用自带的jdk11.这是只需要在这里修改一下就会好了。

但今天没有生效,于是考虑是否是因为更换了maven的setting文件导致的。因为这个项目比较独立,setting文件只添加了aliyun仓库代理。

这里我切换回原来的公司项目用的setting文件,配置的东西比较多。再次启动正常了。

这时对比两个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>

使用过spring多环境配置的小伙伴比较熟悉,一般情况下会在pom文件中配置多个环境,比如:开发、测试、预发布、发布等。或者配置多个pom文件,在打包的时候控制打入的pom文件。这个就不多说了。

这个配置也可以在pom文件中添加,添加后会在idea的maven管理窗口新增一个环境。

操作3.png

加入配置,测试后,是可以的。

但个人很不喜欢这样,如果在setting中配置,意味着对所有使用同一个配置文件的项目都有效,非常难看。强迫症的噩梦。

因此本人更推荐一下几种:

方式1
在当前maven项目pom文件中指定编译的jdk版本。

<properties>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
</properties>

方式2
使用 maven-compiler-plugin 插件指定当前项目编译的jdk版本

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.3.2</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
    </plugins>
</build>

方式3:针对springboot项目。只要指定java版本即可。如果使用springboot官方的初始化项目工具,那么会默认添加这个配置,所以以前很少遇到这个问题。

<properties>
    <java.version>1.8</java.version>
</properties>
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容