一、问题的出现
在写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>
修改刷新后,没有报错了,也没有代码爆红了,当我删了上面那条配置信息,也没有报错,应该是已经默认修改了版本号,问题得到解决。