maven利用Profile构建不同环境的部署包

阅读更多

原文地址:http://www.cnblogs.com/yjmyzz/p/3941043.html     本文是其中一部分

 

项目开发好以后,通常要在多个环境部署,象我们公司多达5种环境:本机环境(local)、(开发小组内自测的)开发环境(dev)、(提供给测试团队的)测试环境(test)、预发布环境(pre)、正式生产环境(prod),每种环境都有各自的配置参数,比如:数据库连接、远程调用的ws地址等等。如果每个环境build前手动修改这些参数,显然太不fashion.

 

maven早就考虑到了这些问题,看下面的pom片段:


        
            
            local
                            
                jdbc:oracle:thin:@localhost:1521:XE
                ***
                ***
            
        
        
            
            dev
                            
                jdbc:oracle:thin:@172.21.129.51:1521:orcl
                ***
                ***
            
            
            
                true
            
        
        ...
    

 profiles节点中,定义了二种环境:local、dev(默认激活dev环境),可以在各自的环境中添加需要的property值,接下来修改build节点,参考下面的示例:


        
            
                src/main/resources
                true
            
        
        
            
                org.apache.maven.plugins
                maven-compiler-plugin
                2.5.1
                
                    1.6
                    1.6
                    utf-8
                
            
        
    

 resource节点是关键,它表明了哪个目录下的配置文件(不管是xml配置文件,还是properties属性文件),需要根据profile环境来替换属性值。通常配置文件放在resources目录下,build时该目录下的文件都自动会copy到class目录下

其中spring-database.xml的内容为:




    
        
        
        
                
    

各属性节点的值,用占位符"${属性名}"占位,maven在package时,会根据profile的环境自动替换这些占位符为实际属性值。

默认情况下: 

maven package

将采用默认激活的profile环境来打包,也可以手动指定环境,比如:

maven package -P dev

将自动打包成dev环境的部署包(注:参数P为大写)

 

这些各属性节点的值,还可以通过spring  Bean的配置,将值付到Java代码中,附件中给一个例子

  • freemarker.rar (6.9 MB)
  • 下载次数: 2

你可能感兴趣的:(maven,Profile)