MAVEN
clean
清理项目
package
编译main和test,并按照pom设置进行打包
install
编译main和 test,按照pom打包并发布到本地maven仓库
compile
只编译main,不编译test
deploy
编译main和test、按照pom打包,更新到本地仓库和私服仓库
mvn clean package deploy:重新发布
mvn dependency:resolve -Dclassifier=sources 下载依赖包源码
jar包不被认为是最新的情况:
- jar不存在(maven clean)
- 传入比较的文件不存在
- 资源的修改时间未知
- jar包最后修改时间早于资源修改时间
maven在执行一个生命周期的命令时会执行之前生命周期的所有操作,但当maven认为jar包为最新时,默认不会对其打包,而会将其直接返回。
maven的生命周期
maven有三个互相独立的生命周期,分别为clean(清理)、default(打包部署)、site(文档生成)
clean
- pre-clean 执行一些清理前需要完成的工作。
- clean 清理上一次构建生成的文件。
- post-clean 执行一些清理后需要完成的工作。
default
- process-sources 处理项目主资源文件。一般来说,是对src/main/resources目录的内容进行变量替换等工作后,复制到项目输出的主classpath目录中。
- compile 编译项目的主代码。一般来说,是编译src/main/java目录下的Java文件至项目输出的主classpath目录中。
- process-test-sources 处理项目测试资源文件 src/main/resources。
- test-compile 编译项目的测试代码。src/test/java。
- test 使用单元测试框架运行测试,测试代码不会被打包或部署。
- package 接受编译好的代码,打包成可发布的格式,如jar。
- install 将包安装到Maven本地仓库,供本地其他Maven项目使用。
- deploy 将最终的包复制到远程仓库。
Site
- pre-site
- site 生成项目站点文档。
- post-site
- site-deploy 将生成的项目站点发布到服务器上。