maven profile多环境动态配置文件使用

pom.xml

<profiles>

        <!-- =====开发环境====== -->
        <profile>
            <id>dev</id>
            <properties>
                <env>dev</env>
                <!-- 微服务配置 -->
                <dubbo.version>server.hbd</dubbo.version>
                <!-- redis缓存配置 -->
                <redis.ip>192.16.8.126</redis.ip>
                <redis.port>6379</redis.port>
                <redis.pass>cor2017</redis.pass>
                <!-- swagger接口 -->
                <swagger.enable>true</swagger.enable>
            </properties>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
        </profile>

        <!-- =======UAT环境========== -->
        <profile>
            <id>uat</id>
            <properties>
                <env>uat</env>
                <!-- 微服务配置 -->
                <dubbo.version>server.positec</dubbo.version>
                <!-- redis缓存配置 -->
                <redis.ip>127.0.0.1</redis.ip>
                <redis.port>15552</redis.port>
                <redis.pass>positec2017...</redis.pass>
                <!-- swagger接口 -->
                <swagger.enable>true</swagger.enable>

            </properties>
        </profile>

        <!-- ======生产环境====== -->
        <profile>
            <id>prod</id>
            <properties>
                <env>prod</env>
                <!-- 微服务配置 -->
                <dubbo.version>server.positec</dubbo.version>
                <!-- redis缓存配置 -->
                <redis.ip>127.0.0.1</redis.ip>
                <redis.port>6379</redis.port>
                <redis.pass>123</redis.pass>
                <!-- swagger接口 -->
                <swagger.enable>false</swagger.enable>
            </properties>
        </profile>
    </profiles>

    <build>
        <resources>
            <!-- 先指定 src/main/resources下所有文件及文件夹为资源文件 -->
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*</include>
                </includes>
            </resource>
            <!-- 设置对某些文件进行过滤, 这里对*.properties进行过虑,即这些文件中的${key}会被替换掉为真正的值 -->
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*.properties</include>
                </includes>
                <filtering>true</filtering>
            </resource>
        </resources>

         <finalName>${project.artifactId}</finalName>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-war-plugin</artifactId>
                    <version>2.4</version>
                    <configuration>
                        <!--<archiveClasses>true</archiveClasses>-->
                        <warName>${project.artifactId}</warName>
                        <!--<warSourceDirectory>${basedir}/src/main</warSourceDirectory>-->
                        <webappDirectory>${project.build.directory}/${project.artifactId}
                        </webappDirectory>
                        <webResources>
                            <resource>
                                <!-- 由于我是把配置文件都在/WEB-INF/config/文件夹-->
                                <!-- 所以把src/main/resources 被filter替换的文件替换dao WEB-INF/config/下-->
                                <directory>src/main/resources</directory>
                                <targetPath>WEB-INF/classes</targetPath>
                                <filtering>true</filtering>
                            </resource>
                        </webResources>
                    </configuration>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>

spring boot  application.properties配置文件

## spring boot 必须用@[email protected]符号, 不用${}
[email protected]@

#环境dev=开发,  prod=生产, uat=用户测试
[email protected]@

#IP
[email protected]@
#Port

[email protected]@
[email protected]@

[email protected]@
[email protected]@

[email protected]@

其他模块普通配置文件

redis.ip=${redis.ip}
#Port
redis.port=${redis.port}
redis.pass=${redis.pass}

spring boot 和普通的方式不同,需要用@@符号占位符,普通方式用${}符号占位

时间: 2024-10-11 16:34:24

maven profile多环境动态配置文件使用的相关文章

maven profile动态选择配置文件

一.背景 在开发过程中,我们的软件会面对不同的运行环境,比如开发环境.测试环境.生产环境,而我们的软件在不同的环境中,有的配置可能会不一样,比如数据源配置.日志文件配置.以及一些软件运行过程中的基本配置,那每次我们将软件部署到不同的环境时,都需要修改相应的配置文件,这样来回修改,很容易出错,而且浪费劳动力. maven提供了一种方便的解决这种问题的方案,就是profile功能. 二.profile简介 profile可以让我们定义一系列的配置信息,然后指定其激活条件.这样我们就可以定义多个pro

Spring boot项目分环境Maven打包,动态配置文件,动态配置项目

Spring boot Maven 项目打包 使用Maven 实现多环境 test dev prod 打包 项目的结构 在下图中可用看出,我们打包时各个环境需要分开,采用 application-环境.yml 的方式命名 环境配置开始 首先我们需要在application.yml文件中配置 spring.profiles.active = @[email protected]这里的proofileAction 是我们下面要用到的变量 spring: profiles: active: @[ema

项目实现不同环境不同配置文件-maven profile

最近接触的项目都是在很多地方都落地的项目,需要支持不同的环境使用不同的配置文件.一直以来都以为是人工的去写不同的配置文件,手动的去修改运用的配置文件.感觉自己还是太low呀.maven的使用的还停留在基础上.后面看项目才发现maven可以不同环境不同的发布,只需要制定环境参数或者设置就可以,整个工程简单粗暴.觉的非常不错,于是想深入的了解一下.写下此文. 一.maven profile介绍 profile可以让我们定义一系列的配置信息,然后指定其在相应的环境下使用相应的配置文件.这样我们就可以根

使用maven profile指定配置文件打包适用多环境

新建maven项目,   在pom.xml中添加 profile节点信息如下: <profiles> <profile> <!-- 开发环境 --> <id>dev</id> <properties> <environment>development</environment><!-- 节点名字environment是自己随意取的 --> </properties> <activa

【转】maven profile实现多环境打包

作为一名程序员,在开发的过程中,经常需要面对不同的运行环境(开发环境.测试环境.生产环境.内网环境.外网环境等等),在不同的环境中,相关的配置一般不一样,比如数据源配置.日志文件配置.以及一些软件运行过程中的基本配置.每次在不同环境部署程序时,都需要修改相应的配置文件,使之完成环境的配置.这么做存在一个比较大的问题:每次修改配置非常麻烦,而且配置错误会产生不可预估的影响,比如,在发布生产环境时用的开发环境的配置还好,但如果在开发环境下用生产环境的数据,将会造成生产数据的污染,导致生产环境崩溃.

maven profile实现多环境打包

快速解决: 项目目录 1.pom文件中添加profile <profiles> <profile> <!-- 本地开发环境 --> <id>dev</id> <properties> <profiles.active>dev</profiles.active> </properties> <activation> <activeByDefault>true</activ

maven profile实现多环境配置

每次项目部署上线都需要手动去修改配置文件(比如数据库配置,或者一个自定义的配置)然后才能打包,很麻烦,网上找到 maven profile可以完成这个工作,记录如下: 环境:eclipse + spring mvc + maven 1.直接看图,把数据库的配置单独拿出来放在了resources_env目录下,三个不同环境参数不同, 2,在pom文件中添加配置    这个引用自:http://www.cnblogs.com/raphael5200/p/6677549.html,感谢 <profil

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

在开发过程中,我们的软件会面对不同的执行环境.比方开发环境.測试环境.生产环境,而我们的软件在不同的环境中.有的配置可能会不一样.比方数据源配置.日志文件配置.以及一些软件执行过程中的基本配置,那每次我们将软件部署到不同的环境时,都须要改动对应的配置文件.这样来回改动,是个很麻烦的事情.有没有一种方法可以让我们不用改动配置就能公布到不同的环境中呢?当然有.这就是接下来要做的事. 当然,这里的前提是使用maven做为构建工具. 使用maven来实现多环境的构建可移植性.须要借助maven提供的pr

环境变量配置文件profile

环境变量配置文件 在Ubuntu中有如下几个文件可以设置环境变量1./etc/profile:在登录时,操作系统定制用户环境时使用的第一个文件,此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.2./etc/environment:在登录时操作系统使用的第二个文件,系统在读取你自己的profile前,设置环境文件的环境变量.3.~/.bash_profile:在登录时用到的第三个文件是.profile文件,每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时