IDEA中maven的Lifecycle和Plugins有什么区别

发布时间:2023-03-01 10:57:45 作者:iii
来源:亿速云 阅读:236

这篇“IDEA中maven的Lifecycle和Plugins有什么区别”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“IDEA中maven的Lifecycle和Plugins有什么区别”文章吧。

IDEA maven 的 Lifecycle 与 Plugins

IDEA 主界面右侧 Maven 标签栏有同样的命令,比如 install,既在 Plugins 中存在,也在 Lifecycle中存在。到底选哪个?二者又有什么区别呢?

经过实验,很多时候都是 Plugins中的命令报错,而 Lifecycle 中的命令正常执行。那么是不是说 Plugins 根本就没有必要存在?存在了还混淆视听?

要解答这个问题,首先要了解这两处的命令到底有什么差异。而之前,要先了解 Maven 的生命周期、阶段、插件和目标之间的关系。

生命周期(Lifecycle)

Maven 的生命周期就是对所有构建过程进行抽象和统一,包含了项目的清理、初始化、编译、测试、打包、集成测试、验证、部署、站点生成等几乎所有的构建步骤。

Maven 内置的三套生命周期:

阶段(Phase)

每套生命周期都是一组阶段组成。

Clean Lifecycle

Default Lifecycle

Site Lifecycle

特点:阶段在生命周期内具有顺序性,在执行生命周期中某个阶段时会先按顺序执行本生命周期当前阶段之前的所有阶段,再执行当前阶段。

例如,Clean Lifecycle有 3 个阶段,按顺序依次为:

则若执行命令 mvn clean 实际按顺序执行了 Clean Lifecyclepre-cleanclean

插件(plugin)和目标(goal)

一个阶段由插件与目标组成。

可以理解为:

即向插件程序传入一个执行参数并执行一次该插件程序,就等于进行了一个步骤。

例子:

mvn compiler:compile

compiler 是插件,compile 是目标,compiler:compile是一个阶段。

插件:目标 表示一个特定任务,阶段是生命周期中的特定步骤。

有些阶段声明绑定的插件:目标(即通过执行相应的插件:目标来实现),有些阶段没有声明绑定的插件:目标,是通过其他方式来实现的。

生命周期及包含阶段,阶段声明绑定的插件:目标如下:

1.Clean Lifecycle

顺序阶段插件:目标



1pre-clean
2cleanclean:clean
3post-clean

2.Default Lifecycle

顺序阶段插件:目标
1validate
2initialize
3generate-sources
4process-sources
5generate-resources
6process-resourcesresources:resources
7compilecompiler:compile
8process-classes
9generate-test-sources
10process-test-sources
11generate-test-resources
12process-test-resourcesresources:testResources
13test-compilecompiler:testCompile
14process-test-classes
15testsurefire:test
16prepare-package
17package
18pre-integration-test
19integration-test
20post-integration-test
21verify
22installinstall:install
23deploydeploy:deploy

3.Site Lifecycle

顺序阶段插件:目标
1pre-site
2sitesite:site
3post-site
4site-deploysite:deploy

在 IDEA 中使用 Lifecycle 下的 install (等价于在命令行执行 mvn install),代表执行的是 生命周期 的一个阶段(会自动先执行之前的所有阶段)。

如上所示,install 阶段前有 21 个阶段,即 mvn install 会先执行前面的 21 个阶段,之后再执行 install 这个阶段。

而作为对比,IDEA 中使用 Plugin 下的 install(等价于在命令行执行 mvn install:install),代表执行的是 插件:目标,它单独执行,不会先去执行之前的 21 个阶段。

另外,由于 生命周期 可以和 插件:目标 一起执行,所以可以先执行 verify 生命周期(执行 1~21 阶段),再执行 install:install(第 22 阶段)。所以以下两种写法其实最终实现效果是等价的。

mvn install
mvn verify install:install

补充:idea中maven的Plugins和 Lifecycle 区别

如果在Plugins里面安装会出现问题,因为Plugins安装,只会执行安装操作,而maven生命周期安装之前的操作都不会执行 ,就会安装失败。但是使用 Lifecycle中的install的话,在执行instal生命阶段之前的说有生命周期阶段,包括(clean compiler test package)

IDEA中maven的Lifecycle和Plugins有什么区别

以上就是关于“IDEA中maven的Lifecycle和Plugins有什么区别”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注亿速云行业资讯频道。

推荐阅读:
  1. IDEA中HTML通过servlet3.0注解名提交表单到servlet类找不到页面怎么办
  2. 如何解决Idea jdk版本问题

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

idea lifecycle plugins

上一篇:java全角与半角标点符号怎么相互转换

下一篇:java函数式接口怎么应用

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》