maven 的生命周期

maven用的比较多,但是对于maven的生命周期不是很清楚,所以,做个简单的总结记录。Maven生命周期lifecycle由各个阶段组成,每个阶段由maven插件的plugin来执行完成,生命周期主要包括clean,resources,compile,testResource,testCompile,package,install,deploy等;

1.Mvn clean install

这个命令是最常用的,我们可以手动去执行下,会发现其中包含了很多的生命周期,这里引用网上的一个截图来进行说明

è¿éåå¾çæè¿°

è¿éåå¾çæè¿°

可以看到整个执行过程包含了:1.clean 2.resources 3.compile 4.testResources 5.testCompile 6.test 7.jar 8.install;接下来详细说下各个插件的具体的作用;

2.clean

clean插件是一个独立的阶段,功能是删除当前项目的target目录;这个自己也可以测试下,执行之后就是把target目录删除了而已;

3.resources

resources插件的功能是把src/main/resources目录的文件拷贝到target/classes目录下;如果不存在src/main/resources目录,则不会做任何处理,测试期间,可以创建一个resources目录,里面添加个1.txt文件,然后执行resources插件,结果如图所示

4.compile

compile插件执行时,会先执行resources插件,主要的作用就是把src/main/java代码编译成字节码生成class文件,输出到targe/classes目录下;执行效果如图

5.单元测试使用的插件testResource,testCompile

类似于resources和compile,只不过这两个类主要用于对单元测试的资源文件和代码进行编译;生成的文件位于target/test-classes下面;

有时候可以使用mvn -Dmaven.test.skip=true 跳过该步骤

6.package

这个插件是把class文件,resources文件打包成一个jar包,依赖包是不在里面包含的;常用的打包的插件有maven-jar-plugin、maven-assembly-plugin、maven-shade-plugin三种;生成的jar包位于target目录下;

7.install

install是把构建好的artifact部署到本地仓库中;这样本地的其他项目依赖于本项目的jar时可以直接从本地仓库去获取,而不用到远端的私服上去下载;

8.deploy

deploy是将本地的jar部署到远端的仓库;需要在maven的setting.xml中配置私服的用户名和密码;还需要再pom.xml做配置;

<distributionManagement>  
   <repository>  
     <id>releases</id>  
     <name>Internal Releases</name>  
     <url>http://localhost:8081/nexus/content/repositories/thirdparty</url>  
   </repository>  
   <snapshotRepository>  
     <id>releases</id>  
     <name>Internal Releases</name>  
     <url>http://localhost:8081/nexus/content/repositories/thirdparty</url>  
   </snapshotRepository>
 </distributionManagement> 

总结:maven的生命周期包含多个阶段,每个阶段由对应的插件去完成对应的动作;其中后面的插件执行会先执行之前的生命周期;

参考文章:

https://blog.csdn.net/zhaojianting/article/details/80321488

https://blog.csdn.net/zhaojianting/article/details/80324533

猜你喜欢

转载自blog.csdn.net/xiaoguangtouqiang/article/details/82117524