idea工具中maven的Lifecycle中各个功能作用详解
IDEA工具中Maven下的各个功能到底有什么作用,平时会使用,但是真正的含义,得探索一下。毕竟不能总是停留在会用的层面~
接下来,让我们一探究竟!
mvn clean作用:
翻译:打扫清理,最直接的就是作用于橙色的target目录。在进行真正的构建之前进行一些清理工作,移除所有上一次构建生成的文件(i.e:删除了install生成的所有文件,包括该目录)。执行该命令会删除项目idea路径下的target文件,但是不会删除本地的maven仓库已经生成的jar文件。
清理前:
清理后:
mvn validate作用:
翻译:验证。验证工程正确性,所需信息完整否。 但是自己没有实际使用过
————————————————
mvn compile作用:
一般是编译scr/main/java或是scr/test/java里面的文件,主要是java文件
翻译:编译。大伙都知道java的识别文件是.class,编译生成class文件,编译命令,只编译选定的目标,不管之前是否已经编译过,会在你的项目路径下生成一个target目录,在该目录中包含一个classes文件夹,里面全是生成的class文件及字节码文件。与build区别:只编译选定的目标,不管之前是否已经编译过。
idea中的build 功能的作用:
————————————————
编译前(清理后):
编译后:
mvn test作用:
翻译:测试。单元测试。,
但是自己没有实际使用过
————————————————
mvn package作用:
翻译:打包。将工程文件打包为指定的格式,例如JAR,WAR等(看你项目的pom文件,里面的packaging标签就是来指定打包类型的)。这个命令会在你的项目路径下一个target目录,并且拥有compile命令的功,因此能进行编译,同时会在target目录下生成项目的jar/war文件。如果a项目依赖于b项目,打包b项目时,只会打包到b项目下target下,并不会讲依赖放到本地的Maven仓库,因此编译a项目时就会报错,因为找不到所依赖的b项目,说明a项目在本地仓库是没有找到它所依赖的b项目,这时就用到install命令。
打包前:
打包后:
————————————————
mvn verify作用:
翻译:核实。主要是对package检查是否有效、符合标准。 没有实际使用过
————————————————
mvn install作用:
翻译:安装。将包安装至本地仓库(在本地Repository中安装该jar包),以让其它项目依赖。该命令包含了package命令功能,不但,会在项目路径下生成class文件和jar包,同时会在你的本地maven仓库生成jar文件,供其他项目使用(如果没有设置过maven本地仓库,一般在用户/.m2目录下。如果a项目依赖于b项目,那么install b项目时,会在本地仓库同时生成pom文件和jar文件,解决了上面打包package出错的问题)
————————————————
mvn site作用:
翻译:站点。生成项目的站点文档。 没有实际使用过
————————————————
mvn deploy作用:(上传到私服)
翻译:配置部署。复制到远程仓库,也就是将上面mvn install中的jar包推送到远程仓库上去,提供给其他的同事进行拉取使用(共享给其它开发人员和项目),上面mvn install 则是将依赖包放到自己本地的仓库里面,以供自己本地想其他项目使用(如果其他的项目对这个项目有依赖的话)
mvn compile与mvn install、mvn deploy的区别
1.mvn compile,编译类文件
2.mvn install,包含mvn compile,mvn package,然后上传到本地仓库
3.mvn deploy,包含mvn install,然后,上传到私服
————————————————
PS:
打包方式主要有JAR和WAR两种
其中JAR用于比较小的项目,好处为不用依赖包,因为他把应用依赖的所有依赖包和程序打包在一个全量包里
其他在idea中的mvn命令
- 显示版本信息 :
mvn -version/-v
- 生成target目录,编译、测试代码,生成测试报告,生成jar/war文件 :
mvn package
- 显示详细错误 信息:
mvn -e
- 运行任何检查,验证包是否有效且达到质量标准
mvn verify
- 想要查看完整的依赖踪迹,包含那些因为冲突或者其它原因而被拒绝引入的构件,打开 Maven 的调试标记运行
mvn install -X
- 打印整个依赖树
mvn dependency:tree
- 在应用程序用使用私服,加如下配置
pom.xml中添加的私服:
<repositories> <repository> <id>nexus</id> <url>http://172.15.108.19:8081/repository/maven-public/</url> <releases> <enabled>true</enabled> <updatePolicy>always</updatePolicy> </releases> <snapshots> <enabled>true</enabled> <updatePolicy>always</updatePolicy> </snapshots> </repository> </repositories>
作用讲完了,除了这些,还需要关注一下,maven中的私服是怎么搭建的 ?自己在idea中的deploy是怎么推送到目的私服的,有哪些人可以推送到私服,其中都是怎么关联起来的呢 ? 这个请关注下一篇文章的讲解:
参考文章:https://blog.csdn.net/weixin_48321825/article/details/126345450 、
![](https://images.cnblogs.com/cnblogs_com/isme-zjh/1665628/t_200309175526zhifubao.png?a=1583807649478)
您的资助是我最大的动力!
金额随意,欢迎来赏!