Maven

Basic

Java Version

1
2
3
4
ruoke@Ruokes-MacBook-Pro ~ % mvn -v
Apache Maven 3.9.6 (bc0240f3c744dd6b6ec2920b3cd08dcc295161ae)
Maven home: /Users/ruoke/Documents/devTools/apache-maven-3.9.6
Java version: 21.0.3, vendor: Oracle Corporation, runtime: /Library/Java/JavaVirtualMachines/jdk-21.jdk/Contents/Home

这个 Java 版本是 Maven 本身运行时使用的 Java 版本

1
2
3
<properties>
    <java.version>1.8</java.version>
</properties>

我项目里的 pom指定该项目的Java编译时版本,会影响maven-compiler-plugin去找哪个版本的JDK;但这里并不指定该项目的运行时版本。 可以在Project Structure里面规定哪个版本JDK用来编译文件

如果想定义运行时JDK,可以在Run Configurations里设置。可以设置为继承项目module里定义的JDK版本。

我的 Maven 配置文件:

/Users/ruoke/Documents/devTools/apache-maven-3.9.6/conf/settings.xml

里面定义了我的 localRepo:

/Users/ruoke/Documents/devTools/apache-maven-3.9.6/mvn_repo

可以在IDEA里面设置Maven的配置文件和localRepo

Maven Install

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.8.1</version>
    <configuration>
        <source>17</source>
        <target>17</target>
        <encoding>UTF-8</encoding>
    </configuration>
</plugin>

点击Maven Install之后,它会读取我的pom文件,接着下载这些plugin到我的localRepo。我此处指定 verison 为 3.8.1, 一次我的 local repo里多了一个目录

1
2
ruoke@Ruokes-MacBook-Pro maven-compiler-plugin % ls
3.11.0	3.8.1

Maven Compile

刚刚安装好的maven-compiler-plugin 3.8.1 Jar包开始运作。 它发现我这里配置的 JDK 版本为 17, 因此maven-compiler-plugin使用 JDK 17提供的 javac 来compile我的.java文件

本地JDK路径在IDEA里通过file structure来配置

/Users/ruoke/Library/Java/JavaVirtualMachines/corretto-17.0.13/Contents/Home

Debug

java: invalid target release: 21
Module hm-dianping SDK 1.8 is not compatible with the source version 21.

  1. 确保pom里面指定的 Java version 和 JDK 版本与 IDEA Project Structure里面指定的版本一致
  2. 右键pom.xml,选择 maven->reload