idea工具maven projects里面有9种生命周期。生命周期是包含在一个项目构建中的一系列有序的阶段。
maven生命周期
最常用的两种打包的方法:
- clean,package(如果报错,很可能是jar依赖的问题)
- clean,install
maven生命周期:
1. clean:清理,在进行真正构建之前进行一些清理的工作,移除所有上一次构建生生的文件。执行该命令会删除项目路径下的target文件。但是不会删除本地的maven仓库已经生成的jar文件。
2. validate:验证,验证工程是否正确,所需的信息是否完整。
3. compile:[kəmˈpaɪl]
编译源码,编译生成class文件,编译命令,只编译选定的目标,不管之前是否已经编译过,会在项目路径下生成一个target目录,在该目录中包含一个class目录,里面全是生成的class文件及字节码文件。
4. package:打包,将工程文件打包为指定的格式,例如jar、war等。这个命令会在项目路径下生成一个target目录,并且拥有compile命令的功能进行编译,同会在target目录下生成项目的jar/war文件。如果a项目依赖于b项目,打包b项目时,只会打包到b项目下的target目录下,编译a项目时就会报错,因为找不到所依赖的b项目,说明a项目在本地仓库是没有找到它所依赖的b项目,这就需要install命令了。
5. verify:核实,检查package是否有效,符合标准。
6. install:[ɪnˈstɔ:l]
安装至本地仓库,将包安装到本地仓库,让其他项目依赖。该命令包含了package命令的功能,不但会在项目路径下生成class文件和jar包,同时会在本地maven仓库生成jar文件,以供其他项目使用(如果没有设置过maven项目,一般在用户./m2目录下。如果a项目依赖于b项目,那么install b项目,会在本地仓库同时生成pom文件和jar文件,解决了package出错的问题。)
7. build:功能类似compile,只是只能对整个项目进行编译。
8. site:站点,生成项目的站点文档。
9. deploy:[dɪˈplɔɪ]
复制到远程仓库。
build和compile的区别
compile:只编译选定的目标,不管之前是否已经编译过。
bulid:只对整个工程进行彻底的重新编译,而不管是否已经编译过,Build过程往往会生成发布包,这个具体要看IDE的配置,build在实际应用中很少,因为开发时候基本不用,生成发布的时候一般都有ANT等工具来发布,Build因为要全部编译,还要执行打包等额外工作,因此时间较长。
参考
idea工具maven生命周期clean,compile,install,package区别
[maven的依赖处理]
(https://blog.csdn.net/u014515854/article/details/80407024)
网友评论