解决maven unresolved plugin 以及 如何控制maven plugin 的插件版本

时间:2024-01-03 18:10:41 买帖  | 投诉/举报

篇首语:本文由小编为大家整理,主要介绍了解决maven unresolved plugin 以及 如何控制maven plugin 的插件版本相关的知识,希望对你有一定的参考价值。

最近在写一个项目的时候,有两个module,A是一个Spring boot,B是一个没有使用框架的module。

问题一:

B库很长时间在执行Downloading plugins for,如果中途退出了idea,插件没有下载完,再次进入idea,会出现unresolved plugin的报错

分析:

这个问题可以通过两个方面来解决:
1、更改仓库地址,提高下载速度,一运行,很快就下载完成。
2、重新下载,需要等待较长的时间

解决:

1、解决下载慢的问题

1、设置其他的仓库地址,或者其他地方下载,可以下载快一些。如何设置可以查看这里

2、重新下载

在上面的路径中,找到对应包名路径下的 .lastUpdated文件,全部找出来删除,之后reimport,就可以开始下载

问题二:

A B 两个module 的maven plugin中各个插件的版本竟然不一样。

于是产生了两个问题

  • maven plugin中各个插件的版本控制是在哪里

  • 解决下载慢的问题

  • unresolved plugin

分析:

一、Maven Plugin中各个插件的版本控制

设置插件版本:

Plugin的插件版本是可以通过pom.xml文件进行控制,其中还可以指定编译java版本,下面介绍三种不同的设置方式:

1、设置maven-resources-plugin插件的版本为2.4.3。其他插件版本设置类似

<dependency>    <groupId>org.apache.maven.plugins</groupId>    <artifactId>maven-resources-plugin</artifactId>    <version>2.4.3</version></dependency>

2、设置maven-compiler-plugin插件版本为3.1,指定编译java版本为1.8。其他插件版本设置类似

<build>    <plugins>        <plugin>            <groupId>org.apache.maven.plugins</groupId>            <artifactId>maven-compiler-plugin</artifactId>            <version>3.1</version>            <configuration>                <source>1.8</source>                <target>1.8</target>            </configuration>        </plugin>    </plugins></build>

3、设置maven-compiler-plugin插件版本为3.7.0,指定编译java版本为1.8。其他插件版本设置类似

<properties>    <maven.compiler.source>1.8</maven.compiler.source>    <maven.compiler.target>1.8</maven.compiler.target>    <maven-compiler-plugin.version>3.7.0</maven-compiler-plugin.version></properties>

关于各个插件的具体作用,请查看项目管理插件maven-plugins

二、为什么A B两个Module plugin版本不一致

A Module spring boot 项目

spring boot 项目中的plugin版本是在框架中定义的,经过我的查找,终于找到了声明版本的pom.xml文件

从下面开始:

<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.0.0.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent>

spring-boot-starter-parent——>spring-boot-maven-plugin——>spring-boot-loader-tools——>spring-boot-tools——>spring-boot-dependencies

在这个spring-boot-dependencies pom.xml文件中,找到了一下代码,瞬间豁然开朗

<properties>...   <maven-install-plugin.version>2.5.2</maven-install-plugin.version>    ...</properties>

其中省略了很多很多,看到这里maven-install-plugin的版本是2.5.2、和上图中的版本一致

B Module 项目

如果没有指定plugin的版本,那么系统会使用默认的版本,默认版本是由maven控制的,具体在这里https://maven.apache.org/plugins/index.html查看

例如查看install-plugin的版本https://maven.apache.org/plugins/maven-install-plugin/install-mojo.html,版本是2.5.2,和上面显示的一致

参考:
maven提示错误,unresolved plugin解决方案
在pom.xml文件中指定编译的版本
显式指定maven插件的版本号
运行maven插件的时候如何指定版本?
maven的pom报plugins错误的解决方法
【MAVEN】项目管理插件maven-plugins
maven项目建立pom.xml报无法解析org.apache.maven.plugins:maven-resources-plugin:2.4.3
解決 IDEA Create Maven Project 卡在 Downloading plugins for …
Intellij IDEA Maven 下载慢,需要这样设置配置文件。

以上是关于解决maven unresolved plugin 以及 如何控制maven plugin 的插件版本的主要内容,如果未能解决你的问题,请参考以下文章