Maven(二) 构建生命周期

构建生命周期

Maven的生命周期(lifecycle)可以理解为由Maven的各种plugin按照一定的顺序执行来完成java项目清理、编译、打包、测试、布署等整个项目的流程的一个过程。

Maven内置了各种插件,如果再pom中没有显示配置就会调用默认的内置插件,如果pom中配置了就会调用配置的插件。

1. Maven生命周期插件配置-build

build标签描述了如何编译及打包项目,具体的编译和打包工作是通过其中的plugin配置来实现的。

plugin不是必须的,即使不添加默认也会引入以下插件:

插件 功能
maven-clean-plugin 清理上一次执行创建的目标文件
maven-resources-plugin 清理上一次执行创建的目标文件
maven-compiler-plugin 编译源文件和测试源文件
maven-surefire-plugin 执行测试文件
maven-jar-plugin 创建 jar
maven-install-plugin 安装 jar,将创建生成的 jar 拷贝到 .m2/repository 下面
maven-deploy-plugin 发布 jar

如果有需要可以针对各个 plugin 进行特殊配置,需要在pom.xml中的标签中显示指定plugin 和 属性配置。

1.1 元素

资源往往不是代码,而是properties或xml文件,无需编译,构建过程中往往会将资源文件从源路径复制到指定的目标路径。

resources则给出各个资源在maven项目中的具体路径。


    
        
            
            src/main/java
            
            
                **/*.xml
                **/*.ftl
            
            
			
				*.txt
			
			
			${build.outputDirectory}
        
        
            src/main/resources
            
                **/*
            
        
    

1.2 元素

设置构建过程中需要的插件。


    
        
            org.apache.maven.plugins
            maven-compiler-plugin
            
            
                ${charset}
                ${jdk.version}
                ${jdk.version}
            
        
        
            org.apache.maven.plugins
            maven-source-plugin
            
            
                
                    
                    package
                    
                    
                        jar
                    
                
            
        
    

2. 常用插件

2.1 maven-clean-plugin

清理构建目录下的全部内容,构建目录默认是target,可配置。

2.2 maven-resources-plugin

负责处理项目资源文件并拷贝到输出目录。分为main resources和test resources。

结合下的标签可配置资源文件路径。

2.3 maven-compiler-plugin

编译Java代码。

默认会用maven-compiler-plugin默认的jdk版本来进行处理,这样就容易出现版本不匹配。一般我们需要指定编译版本。


    
        
            org.apache.maven.plugins
            maven-compiler-plugin
            
                UTF-8
                1.8
                1.8
            
        
    

2.4 maven-surefire-plugin

执行测试用例的插件,不显示配置就会用默认配置。可设置跳过测试。


    
        
            org.apache.maven.plugins
            maven-surefire-plugin
            
                true
            
        
    

2.5 maven-jar-plugin

把class文件、配置文件打成一个jar(war或其它格式)包。

注意:依赖包是不在jar里面的,需要建立lib目录,且jar和lib目录在同级目录。

SpringBoot项目,一般使用spring-boot-maven-plugin插件进行打包,直接打成一个可执行的jar包。

2.6 maven-install-plugin

将打包生成的jar文件安装到本地仓库。

2.7 maven-deploy-plugin

将打包生成的jar文件部署到POM配置的远程库中。

2.8 maven-source-plugin

将源码(.java文件)打成Jar包。

Maven(二) 构建生命周期_第1张图片

配置:

 
     
         
             org.apache.maven.plugins
             maven-source-plugin
             
                 
                     package
                     
                         jar
                     
                 
             
         
     

2.9 spring-boot-maven-plugin

一般的maven项目的打包命令,不会把依赖的jar包也打包进去的,只是会放在jar包的同目录下,能够引用就可以了。

但是spring-boot-maven-plugin插件,会将依赖的jar包全部打包进去,生成一个可直接运行的jar。

需显式配置。


    
        
            org.springframework.boot
            spring-boot-maven-plugin
            
                
                com.aster.netsales.poss.openapi.PossOpenapiApplication
            
        
    

你可能感兴趣的:(Maven(二) 构建生命周期)