• Maven 指定 Java 编译版本


    Maven使用的默认Java编译器版本是Java 1.5。为了使Maven使用Java编译器的较新版本编译Java代码,需要在项目的POM文件(pom.xml)中显式指定Java编译器。

    指定Java编译器版本的确切方式取决于你使用的是Java 8 或更早版本,还是Java 9或更高版本。从Java 9开始,Java获得了一些模块,这些模块在短期内会使编译有些复杂,但从长期来看应该会有所帮助。

    一、 适用于Java 8和更早版本的Maven Java编译器

    从Java 8 和更早版本开始,有两种方法可以在Maven POM文件中设置Java编译器版本:

    • 通过Maven Java编译器属性。
    • 通过Maven Java编译器插件。

    以下将说明这两种在Maven中设置Java编译器版本的方法。

    1、 Maven Java编译器属性

    第一种,也是最简单的方法是通过Maven Java编译器属性:

    
      1.8
      1.8
    
    
    • 1
    • 2
    • 3
    • 4

    这些属性必须包含在POM文件的properties元素中。

    2、Maven Java编译器插件

    第二种比较冗长的方法是通过插件:

    
      
        
          org.apache.maven.plugins
          maven-compiler-plugin
          3.6.1
          
            1.8
            1.8
          
        
      
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    二、完整Maven POM文件示例

    这是使用上述两种机制设置的Java编译器版本的完整Maven POM文件。 请注意,你的POM文件中仅应使用一种机制。 该示例仅显示了两个示例,方便看到它们在POM文件中放置的位置。

    示例1

    
    
        4.0.0
        com.nanosai
        grid-ops
        0.8.0
        jar
        
        
            UTF-8
            1.8
            1.8
        
        
        
            
                junit
                junit
                4.12
                test
            
        
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26

    示例2

    
    
        4.0.0
        com.nanosai
        grid-ops
        0.8.0
        jar
    
        
            
                junit
                junit
                4.12
                test
            
        
    
        
            
                
                    org.apache.maven.plugins
                    maven-compiler-plugin
                    3.6.1
                    
                        1.8
                        1.8
                    
                
            
        
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    补充: 适用于Java 9及更高版本的Maven Java编译器

    对于Java 9和更高版本,使用插件版的一种变体,用release属性来代替source和target属性:

    
        org.apache.maven.plugins
        maven-compiler-plugin
        3.8.0
        
            11
        
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    本示例在release属性中将Java版本设置为11。Java 11是Java的长期支持(LTS)版本。

    还要注意,Maven Java编译器插件的版本已从3.6.1更改为3.8.0。

  • 相关阅读:
    Jmeter-逻辑控制器,定时器,前置处理器,取样器
    YOLOv8-Seg改进:位置信息的轴线压缩增强注意力Sea_Attention| ICLR2023 SeaFormer,轻量级语义分割算法,复旦大学和腾讯
    Struts2的表单标签
    c++多态
    walking机器人仿真教程-深度学习-使用yolov5进行物体识别
    如何计算Java对象的大小
    HTML5福利篇--使用Canvas画图
    java (gc)机制
    Java中的ArrayList和LinkedList的区别
    EnvoyFilter实践: 通过解析子域名注入环境标识
  • 原文地址:https://blog.csdn.net/m0_67394002/article/details/126435151