关于maven每次都需要配置java的版本的问题

关于maven每次都需要配置java的版本的问题

老师,您好!在使用maven时,总是会出现

http://img1.sycdn.imooc.com//climg/5f617f2e09552ac711130127.jpg

这个时候每次都需要重新设置一遍,比较麻烦,有没有什么一劳永逸的方法?

正在回答

登陆购买课程后可参与讨论,去登陆

6回答

同学你好,

1、建议同学使用如下仓库试试。如下:

<repositories>
    <repository>
        <id>huaweicloud</id>
        <name>huaweicloud</name>
        <url>https://mirrors.huaweicloud.com/repository/maven/</url>
    </repository>
</repositories>

http://img1.sycdn.imooc.com//climg/5f700c4c0958f48506790592.jpg

看一下Maven本地仓库位置。如下:

http://img1.sycdn.imooc.com//climg/5f700f1509be27a811000817.jpg

删除本地仓库下maven-compiler-plugin文件夹下的3.8.1文件夹

如下:

http://img1.sycdn.imooc.com//climg/5f700e530933a47907230394.jpg

清理一下Maven,如下:

http://img1.sycdn.imooc.com//climg/5f700e8e09cc889c03080202.jpg

更新Maven依赖。如下:

http://img1.sycdn.imooc.com//climg/5f700ddd095e328d03140171.jpg

看一下本地仓库中有没有maven-compiler-plugin-3.8.1.jar,如下:

http://img1.sycdn.imooc.com//climg/5f700e19099a3a0106420232.jpg

2、如果问题没有解决,建议同学贴一下pom.xml代码,方便老师检查。

祝学习愉快~


好帮手慕阿慧 2020-09-27 11:01:40

同学你好,

1、使用<pluginManagement>没有报错,是因为Maven不会加载<pluginManagement>中的插件,所以就不会报错。

在<build>的<plugins>直接写<plugin>会报错 可能是阿里云仓库中没有3.8.1版本的maven-compiler-plugin:jar。

2、第二个方法可以,那么建议同学可以先使用第二种方法。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!


  • 提问者 mahsiaoko #1
    其他的版本也是报错,,还有配置和没配置阿里云都会报错的
    2020-09-27 11:05:09
好帮手慕阿慧 2020-09-26 19:00:58

同学你好,

1、同学检查一下Maven配置是否正确。如下:

http://img1.sycdn.imooc.com//climg/5f6f1e61099227b309980738.jpg

更新一个Maven依赖。如下:

http://img1.sycdn.imooc.com//climg/5f6f1ecd09b9bcbb04250171.jpg

2、如果问题没有解决,建议同学去掉<plugin>代码,在pom.xml中添加如下配置试试:

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

http://img1.sycdn.imooc.com//climg/5f6f1f34099e367b07350832.jpg

如果问题没有解决,建议同学贴一下错误截图和pom.xml代码,方便老师检查。

祝学习愉快~

  • 提问者 mahsiaoko #1
    在<build>的<plugins>直接写<plugin>会报这个错误,换成阿里云的仓库也是maven-compiler-plugin:jar:3.8.1 is missing ;但是如果<build>标签里面直接跟<pluginManagement>再包裹<plugins><plugin>就不会出现这个问题,这是什么原因导致的 。老师提供的第二个方法倒是可以
    2020-09-27 10:44:15
好帮手慕阿慧 2020-09-26 16:21:32

同学你好,

1、<pluginManagement>是表示插件声明,就是仅在项目中的pluginManagement下声明了插件,Maven不会加载该插件,该插件不会在项目中生效。<pluginManagement>一般是用来在父POM中定义,提供给子POM使用。

2、在<build>的<plugins>直接写<plugin>就是直接引入一个plugin插件,当前Maven项目会加载该插件,该插件会生效。

祝学习愉快~

  • 提问者 mahsiaoko #1
    但是我发现没有pluginManagement的话,会报错,这是什么原因
    2020-09-26 16:33:26
好帮手慕小脸 2020-09-16 14:59:10

同学你好,给出的方法已经是比较简便的了,只需在pom.xml指定版本即可

祝学习愉快~


  • 提问者 mahsiaoko #1
    好的,我以为可以在idea中设置好,实现一劳永逸
    2020-09-16 15:00:13
  • 提问者 mahsiaoko #2
    老师,您好,我发现您给出的解答在有些情况下会报错,我看网上说的,需要在 <build>标签里加一个<pluginManagement>标签之后再加上<plugins>标签才可以
    2020-09-26 15:47:25
好帮手慕小脸 2020-09-16 12:01:07

同学你好,同学可以在pom.xml文件中,指定编译器的jdk版本,如下:

<build>
    <plugins>
	<plugin>
		<groupId>org.apache.maven.plugins</groupId>
		<artifactId>maven-compiler-plugin</artifactId>
		<version>3.8.1</version>
		<configuration> <!--使用本地的版本的jdk。例如:-->
			<source>1.8</source>
			<target>1.8</target>
		</configuration>
	</plugin>
    </plugins>
</build>

http://img1.sycdn.imooc.com//climg/5f618dee09dbe3e605680414.jpg

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • 提问者 mahsiaoko #1
    没有其他的方法了吗?
    2020-09-16 13:48:43
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师