一、问题的出现

在写pom.xml配置文件的时候,我配置在<build></build>里面加配置信息,在第一次配置的时候,我是这样子写的

  <build>
    <!--maven插件-->
    <plugins>
      <!--jdk编译插件-->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <source>17</source>
          <target>17</target>
          <encoding>utf-8</encoding>
        </configuration>
      </plugin>
      <!--tomcat插件-->
      <plugin>
        <groupId>org.apache.tomcat.maven</groupId>
        <!-- tomcat7的插件, 不同tomcat版本这个也不一样 -->
        <artifactId>tomcat7-maven-plugin</artifactId>
        <version>2.1</version>
        <configuration>
          <!-- 通过maven tomcat7:run运行项目时,访问项目的端口号 -->
          <port>80</port>
          <!-- 项目访问路径  本例:localhost:9090,  如果配置的aa, 则访问路径为localhost:9090/aa-->
          <path>/travel</path>
        </configuration>
      </plugin>

    </plugins>
  </build>

出现问题的地方在<!--jdk编译插件-->这里,出现的问题是两行代码爆红,以下是爆红的代码:

        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>

我搜了好多资料,都说是版本不兼容问题,但是没有解决办法,因为我的是jdk17,在其他解决方案都是jdk1.8,所以一直没有解决。但是至少知道是版本不匹配的问题,我开始去寻找相应的资料。

我开始去问chatgpt,得到了有用的发现:

我在chatgpt里面的解决方案看到这个以下信息:

<version>3.8.1</version> <!-- 换成你需要的版本 -->

所以我认为可能编译器默认一个版本号,但是我们的maven的仓库里面没有那个版本号,所以我也按chatgpt填上了3.8.1这个版本,很明显,我仓库里面没有这个版本,仍然报错,爆红的代码还加上了一行~~很无奈

        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.8.1</version>

但是至少让我知道应该是这个原因。

二、问题的处理

对于这个问题,我参考了一篇文章

https://wenku.csdn.net/answer/b92dc12d19cd94ecc2c84badaf357cfe

我不清楚我有没有下载到3.8.1这个maven-compiler-plugin-3.8.1.jar这个文件,所以我没有进行那个文章的操作,而是继续看想找找对应我可能下载到的地方,然后我找到了以下信息

我看到了最下面一条他所说的maven-compiler-plugin-3.8.1.jar这个的路径,我按以下路径去我的本地仓库找了我下载的:

mvn_repo\org\apache\maven\plugins\maven-compiler-plugin\

然后找到我下载的对应jar,版本是3.11.0,然后我去以下网站找了我对应版本的配置

https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-compiler-plugin/3.11.0

<!-- https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-compiler-plugin -->
<dependency>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.11.0</version>
</dependency>

将以上的配置信息粘贴到我pom.xml配置文件<build></build>里,然后点右边的maven框刷新,修改后的<build></build>如下

<build>
    <!--maven插件-->
    <plugins>
      <!--jdk编译插件-->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.11.0</version>
        <configuration>
          <source>17</source>
          <target>17</target>
          <encoding>utf-8</encoding>
        </configuration>
      </plugin>
      <!--tomcat插件-->
      <plugin>
        <groupId>org.apache.tomcat.maven</groupId>
        <!-- tomcat7的插件, 不同tomcat版本这个也不一样 -->
        <artifactId>tomcat7-maven-plugin</artifactId>
        <version>2.1</version>
        <configuration>
          <!-- 通过maven tomcat7:run运行项目时,访问项目的端口号 -->
          <port>80</port>
          <!-- 项目访问路径  本例:localhost:9090,  如果配置的aa, 则访问路径为localhost:9090/aa-->
          <path>/travel</path>
        </configuration>
      </plugin>

    </plugins>
  </build>

实际上就改变<!--jdk编译插件-->在里面的信息,加了一行

        <version>3.11.0</version>

修改刷新后,没有报错了,也没有代码爆红了,当我删了上面那条配置信息,也没有报错,应该是已经默认修改了版本号,问题得到解决。

三、问题解决

更多推荐