• maven pom.xml加载不同properties配置[转]


    可以参考http://www.openwebx.org/docs/autoconfig.html 

    1.pom.xml

    ===========================

    <!-- 不同的打包环境配置: test=开发/测试测试环境,  product=生产环境; 命令行方式: mvn clean install -Dmaven.test.skip=true -Ptest 或 -Pproduct-->    

        <profiles>
           <!-- 开发/测试环境,默认激活 -->
           <profile>
               <id>test</id>
               <properties>
                  <env>test</env>
               </properties>
               <activation>
                  <activeByDefault>true</activeByDefault><!--默认启用的是dev环境配置-->
               </activation>
           </profile>
           <!-- 预发布环境 -->
           <profile>
               <id>preproduction</id>
               <properties>
                  <env>preproduction</env>
               </properties>
           </profile>
           <!-- 生产环境 -->
           <profile>
               <id>production</id>
               <properties>
                  <env>production</env>
               </properties>
           </profile>
        </profiles>  
      
          <build>
            <filters> <!-- 指定使用的 filter -->
              <filter>src/main/filters/filter-${env}-env.properties</filter>
            </filters>
            <resources>
              <resource> <!-- 配置需要被替换的资源文件路径, db.properties 应该在 src/main/resource 目录下 -->
                <directory>src/main/resources</directory>
                <filtering>true</filtering> <!-- 是否使用过滤器 -->
              </resource>
            </resources>

          </build>

    2.src/main/filters/下不同环境的配置文件

    src/main/filters/filter-preproduction-env.properties

    src/main/filters/filter-production-env.properties

    src/main/filters/filter-test-env.properties

    ======filter-test-env.properties 举例

    jdbc.url=jdbc:mysql://192.168.120.220:3306/testdb?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull
    jdbc.username=testuser
    jdbc.password=123456

    3.src/main/resources下要应用处理的文件

    src/main/resources/conf/db.properties

    ======db.properties

    jdbc.datasource=com.mchange.v2.c3p0.ComboPooledDataSource
    jdbc.driverClass=com.mysql.jdbc.Driver
    jdbc.url=${jdbc.url}
    jdbc.username=${jdbc.username}
    jdbc.password=${jdbc.password}

    jdbc.minPoolSize=10
    jdbc.maxPoolSize=50
    jdbc.autoCommit=false

    -----------------------------------

    自定义配置属性:

    Custom properties in the POM

    User defined properties in the pom.xml.

    <project>
    ...
      <properties>
         <my.filter.value>hello</my.filter.value>
      </properties>
    ...
    </project>
    
    • ${my.filter.value } will result in hello if you inserted the above XML fragment in your pom.xml

    再比如:在pom.xml中properties自定义如下:

    Xml代码  收藏代码
    1. <properties>  
    2.         <springframework_version>3.1.0.RELEASE</springframework_version>  
    3.         <maven.bbs.appConfig>itConfig.xml</maven.bbs.appConfig>  
    4.     </properties>  

    在web容器加载的时候,假如spring监听的配置文件是:applicationContext.xml,那么applicationContext.xml文件内容可以这样写来引入maven的properties属性值:

    <import resource="${maven.bbs.appConfig}"/>

    maven编译过后,targer项目里面的applicationContext.xml里面相应的引入就会变成

    <import resource="itConfig.xml"/>

    <build>
    <!-- autoconfig with antx.properties -->
    <filters>
    <filter>${filterFile}</filter>
    </filters>
    <resources>
    <resource>
    <directory>src/main/resources</directory>
    <filtering>true</filtering>
    </resource>
    </resources>
    </build>

    <profiles>
    <profile>
    <id>dev</id>
    <properties>
    <filterFile>antx.properties</filterFile>
    </properties>
    <activation>
    <activeByDefault>true</activeByDefault>
    </activation>
    </profile>
    </profiles>




    现在发现有两种可以实现配置
    一种是使用filter
    第二种是使用
    autoconfig-maven-plugin  来产生autoconfig
  • 相关阅读:
    程序员修炼之道阅读笔记2
    程序员修炼之道阅读笔记1
    软件体系架构的质量属性
    计算贴现率相关问题
    以《淘宝网》为例,描绘质量属性的六个常见属性场景
    第十四周总结
    软件需求模式阅读笔记
    第十三周总结
    第十二周总结
    重大技术需求进度报告六
  • 原文地址:https://www.cnblogs.com/diegodu/p/6002752.html
Copyright © 2020-2023  润新知