IDEA中对Maven项目做了相当好的支持,专门有个Maven的模块用于进行项目的操作:
上图红框中的内容即开发者经常使用的操作,将英文简单翻译过来,其中文分别为Lifecycle(生命周期)、clean(清理)、validate(验证)、compile(编译)、test(测试)、package(打包)、verify(核实)、install(安装)、site(设置)、deploy(部署),附Maven官网对于Maven项目默认生命周期的说明:
根据Maven的生命周期来说,以上的操作中:一个操作必然包含了其前面所有的步骤,换句话说,只有完成了前面的所有步骤,才能执行该操作
看起来比较多,但是对于日常的开发来说,常用操作不过二三,针对几个常用的操作进行测试及说明:
以下分别从IDEA中对Maven项目进行的生命周期操作来观察项目路径下(编译的target文件夹生成在项目路径下,与src目录同级),maven本地仓库中的变化来得出结论
项目路径:
本地仓库:
clean-清理操作
变化
项目路径下的 target
目录已删除,本地仓库中如果存在之前已安装的该项目包,不会删除
结论
清理掉项目路径下的 target
目录(如果有的话)
compile-编译操作
变化
在项目路径下生成了 target
目录
结论
在项目路径下生成 target
目录,但目录中不包含生成的 jar 包或其他类型包
经测试,compile 操作之前不会先进行 clean 操作,通俗的说:compile 前,target 目录已存在,compile 后,target 目录中的文件不变或增加,但是不会少。
比如:compile 前 target 目录已存在且 classes 目录下存在 logs 日志文件目录,本次 compile 前修改 pom.xml 中的配置,在
标签中的 标签中排除 logs 目录,但是仅执行 compile 操作后,查看 target 目录还是可以看到之前的 logs 目录,可见并未进行 clean 操作。再测试执行 clean 后再执行 compile,就没有 logs 目录了
package-打包操作
变化
在项目路径下生成了 target
目录
结论
在项目路径下生成 target
目录,目录中包含生成的 jar 包或其他类型包
install-安装操作
变化
在 package 操作基础上,执行 install 后,该项目被部署到了本地仓库中
结论
install操作,将jar包或其他类型包安装到本地仓库中,可供本地其他项目进行引用依赖
deploy-部署操作
在 install 操作的基础上,将项目生成的 jar 包或其他类型包部署到私服仓库中
因未部署私服仓库,所以暂未经过测试
clean 操作与其他生命周期不存在先后关系,生命周期的操作进行前都不会进行 clean 操作
推荐 package,install 操作前先进行 clean 操作,或在 Execute Maven Goal 框中输入:mvn clean install,也是先清理后安装的操作
maven 项目进行的生命周期的操作,都可以在 IDE 的控制台看到操作步骤或查看日志文件