使用maven profile 构建不同环境引用不同的值

Posted MaXianZhe

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用maven profile 构建不同环境引用不同的值相关的知识,希望对你有一定的参考价值。

需要做的配置如下

<profiles>
        <profile>
            <id>dev</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <build>
                <filters>
                    <filter>vars/vars.dev.properties</filter>
                </filters>
            </build>
        </profile>
        <profile>
            <id>sit</id>
            <build>
                <filters>
                    <filter>vars/vars.sit.properties</filter>
                </filters>
            </build>
        </profile>
        <profile>
            <id>pre</id>
            <build>
                <filters>
                    <filter>vars/vars.pre.properties</filter>
                </filters>
            </build>
        </profile>
        <profile>
            <id>prod</id>
            <build>
                <filters>
                    <filter>vars/vars.prod.properties</filter>
                </filters>
            </build>
        </profile>
    </profiles>

其中vars所在的目录为

pom文件中一定要有如下的配置 缺一不可

<plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <configuration>
                    <useDefaultDelimiters>false</useDefaultDelimiters>
                    <delimiters>
                        <delimiter>$[*]</delimiter>
                    </delimiters>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
            
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.3.2</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
        </plugins>
        
        <resources>
            <resource>
                <directory>${basedir}/src/main/resources</directory>
                <filtering>true</filtering>
            </resource>
        </resources>

尤其要注意 resources标签,只有包含在resources标签里面的配置文件 里面的${key}才会被替换掉,如果不配resources这种配置文件是不会生效的。

更多信息可以参考 

http://www.cnblogs.com/wangyang108/p/6030735.html

使用替换不仅仅properties文件可以 xml也是可以的 

这种工具的好处就是log日志的位置可以动态指定了,不同的发版环境配不同的环境变量

vars.dev.properties文件中有下列变量
log.path=f:/rdrslogs

log4j.properties中配置如下
log4j.appender.logfile.File=$[log.path]\\\\logs\\\\rdrs_console_info.log

打包后实际的路径为log4j.appender.logfile.File=f:/rdrslogs\\\\logs\\\\rdrs_console_info.log

 

以上是关于使用maven profile 构建不同环境引用不同的值的主要内容,如果未能解决你的问题,请参考以下文章

使用maven profile实现多环境可移植构建

maven的profile构建不同环境打包

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

Maven学习-Profile详解

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

5Maven-构建配置文件