Maven Profile


一个项目通常都会有多个不同的运行环境,例如开发环境,测试环境、生产环境等。而不同环境的构建过程很可能是不同的,例如数据源配置、插件、以及依赖的版本等。每次将项目部署到不同的环境时,都需要修改相应的配置,这样重复的工作,不仅浪费劳动力,还容易出错。为了解决这一问题,Maven 引入了 Profile 的概念,通过它可以为不同的环境定制不同的构建过程。

 
        
            
            dev
            
                
                dev
            
        
        
            prod
            
                prod
            
            
                true
            
        
        
            test
            
                test
            
        
    

可以看到定义了多个profile,每个profile都有唯一的id,也包含properties属性。这里为每个profile都定义一个名为profiles.active的properties,每个环境的值不同。当我们打包项目时,激活不同的环境,profiles.active字段就会被赋予不同的值。

2.2 激活方式

1. 通过maven命令参数

即在使用maven打包时通过-P参数,-P后跟上profile的唯一id,如

mvn clean package -Ptest

2. 通过pom文件里的activation属性

    
            prod
            
                prod
            
            
            
                
                true
                
                
                
                1.5
                
                [1.5,)

                
                
                    Windows XP
                    Windows
                    x86
                    5.1.2600
                

                
                
                    env
                    test
                

                
                
                    target/generated-sources/axistools/wsdl2java/
                        com/companyname/group