写在前面
可以先看这个:Maven生命周期详解
然后再看这个:菜鸟教程-Maven生命周期
然后就可以对Maven生命周期有比较全面的了解。
一、Maven生命周期
上面的博主已经整理的非常清晰了,我就记录一下我的整理。
Maven有三套相互独立的生命周期,每套生命周期都有各自的阶段。
Clean Lifecycle
在进行真正的构建之前进行一些清理工作。Default Lifecycle
构建的核心部分,编译,测试,打包,部署等等。Site Lifecycle
生成项目报告,站点,发布站点。
常用的生命周期指令:
mvn clean
移除所有上一次构建生成的文件(可将根目录下生成的target文件移除)mvn compile
编译项目的源代码(会在根目录生成target文件,不会执行UT)。mvn test
使用合适的单元测试框架运行测试。(这些测试代码不会被打包或部署。)mvn package
接受编译好的代码,打包成可发布的格式,如 JAR(会执行UT) 。mvn install
将包安装至本地仓库,以让其它项目依赖(会执行UT)。mvn deploy
将最终的包复制到远程的仓库,以让其它开发人员与项目共享。
新jar包未找到问题
在项目中,经常引用的jar包升级,但是本地仓库缓存的jar包还没有更新。然后我们在编译的时候会报错。
在这里插入代码片
解决问题:
执行:
mvn clean install
执行mvn clean
将根目录下生成的target文件移除,然后maven install
将本地工程打包成jar包,放入到本地仓库中,再通过pom.xml配置依赖引入到当前工程。
pom.xml中引入的坐标首先在本地maven仓库中查找,若没有则去maven的网上中央仓库查找,并放到本地仓库供项目使用。
Maven clean install 跳过单元测试
每次更新jar包都执行一遍UT的话,非常的耗时。可以通过如下指令,跳过单元测试。
方法1、使用MVN命令
mvn clean install -DskipTests
或者
mvn clean install -Dmaven.test.skip=true
方法2、在pom中设置如下即可。
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
</plugins>