maven多环境打包配置

来源:互联网 发布:穆逢春 知乎 编辑:程序博客网 时间:2024/05/01 08:43

一、需求场景

1、开发环境和生产环境数据库地址和信息不同。

2、开发和生产日志等级不同

。。。

 

二、最简单的实现方式

pom.xml 中配置

<!-- 设置不同环境打包 -->
<profiles>
    
<profile>
        
<id>dev</id>
        
<properties>
            
<db.url>aa1</db.url>
            
<db.username>bb1</db.username>
            
<db.password>cc1</db.password>
            
<log.sqlEnable>true</log.sqlEnable>
            
<log.appender>console</log.appender>
        
</properties>
        
<activation>
            
<activeByDefault>true</activeByDefault>
        
</activation>
    
</profile>
    
<profile>
        
<id>product</id>
        
<properties>
            
<db.url>aa2</db.url>
            
<db.username>bb2</db.username>
            
<db.password>cc2</db.password>
            
<log.sqlEnable>true</log.sqlEnable>
            
<log.appender>mainLog</log.appender>
        
</properties>
        
<activation>
            
<activeByDefault>true</activeByDefault>
        
</activation>
    
</profile>
</profiles>
<build>
    
<finalName>xx-web</finalName>
    
    
<!-- src/main/resources目录下 上面配置的字符串过滤替换 -->
    
<resources>
        
<resource>
            
<directory>${project.basedir}/src/main/resources</directory>
            
<filtering>true</filtering>
        
</resource>
    
</resources>
</build>

 

使用如下:

eg.   /src/main/resources/conf/jdbc.properties

jdbc.driver=oracle.jdbc.OracleDriver
jdbc.url
=${db.url}
jdbc.username
=${db.username}
jdbc.password
=${db.password}

 

默认是激活 dev 的配置,activeByDefault 那里设置为true了。

 

所以打包到生产环境时,需要执行类似如下命令,

mvn clean -X package -Pproduct

 

这样就避免每次手动替换工程中的不同了。如果有更复杂的配置差异,请参考:

Maven插件之portable-config-maven-plugin(不同环境打包)

Maven实战(九)——打包的技巧

 

1 0
原创粉丝点击