zoukankan      html  css  js  c++  java
  • Maven项目打包时指定配置策略

    以数据库连接池的配置文件(db.properties)为例,一般的项目会有开发用数据库,测试用数据库,正式环境数据库三种配置。

    以前的做法是拷贝成三份,注释掉其他了两份

    # 开发用
    jdbc.url =jdbc:mysql://localhost:3306/app_name?characterEncoding=UTF-8&useUnicode=true&useSSL=false&allowMultiQueries=true
    jdbc.username = root
    jdbc.password = root
    
    # 测试用
    # jdbc.url =jdbc:mysql://111.111.111.111:3306/app_name?characterEncoding=UTF-8&useUnicode=true&useSSL=false&allowMultiQueries=true
    # jdbc.username = root
    # jdbc.password = a@#$
    
    # 正式环境用
    # jdbc.url =jdbc:mysql://112.121.211.222:3306/app_name?characterEncoding=UTF-8&useUnicode=true&useSSL=false&allowMultiQueries=true
    # jdbc.username = root
    # jdbc.password = asd123&*(

    项目每次打包到不同的环境都需要,选择正确的配置,取消它的注释,并注释掉另外两套配置。

    如果用到pom.xml中的profiles标签,打包前的这些配置步骤就可以省略了。

    1、首先在src/main/resources下建立environment文件夹,里面新建3个properties文件,代表上面提到的三种配置策略

    db_dev.properties

    env.jdbc.url =jdbc:mysql://localhost:3306/app_name?characterEncoding=UTF-8&useUnicode=true&useSSL=false&allowMultiQueries=true
    env.jdbc.username = root
    env.jdbc.password = root

    db_test.properties

    env.jdbc.url =jdbc:mysql://111.111.111.111:3306/app_name?characterEncoding=UTF-8&useUnicode=true&useSSL=false&allowMultiQueries=true
    env.jdbc.username = root
    env.jdbc.password = a@#$

    db_prod.properties

    env.jdbc.url =jdbc:mysql://112.121.211.222:3306/app_name?characterEncoding=UTF-8&useUnicode=true&useSSL=false&allowMultiQueries=true
    env.jdbc.username = root
    env.jdbc.password = asd123&*(

    2、改变原有的db.properties中的内容

    db.properties

    jdbc.url=${env.jdbc.url}
    jdbc.username=${env.jdbc.username}
    jdbc.password=${env.jdbc.password}

    3、在pom.xml中追加profiles标签

    <profiles>
            <profile>
                <id>dev</id>
                <activation>
                    <!-- 代表默认配置是dev -->
                    <activeByDefault>true</activeByDefault>
                </activation>
                <build>
                    <filters>
                        <filter>src/main/resources/environment/db_dev.properties</filter>
                    </filters>
                </build>
            </profile>
            <profile>
                <id>prod</id>
                <build>
                    <filters>
                        <filter>src/main/resources/environment/db_prod.properties</filter>
                    </filters>
                </build>
            </profile>
            <profile>
                <id>test</id>
                <build>
                    <filters>
                        <filter>src/main/resources/environment/db_test.properties</filter>
                    </filters>
                </build>
            </profile>
        </profiles>

    4、pom.xml的resources标签中追加对environment的配置。由于environment文件夹只作为“配置仓库”用,所以它不需要参与编译

                <resource>
                    <directory>src/main/resources</directory>
                    <excludes>
                        <exclude>environment/*</exclude>
                    </excludes>
                    <includes>
                        <include>**/*.properties</include>
                        <include>**/*.xml</include>
                    </includes>
                    <filtering>true</filtering>
                </resource>

    5、打包命令

    给开发环境打包(用到得很少,一般都是直接jetty:run来调试)

    mvn clean install -Dmaven.test.skip=true -Pdev

    给测试环境打包

    mvn clean install -Dmaven.test.skip=true -Ptest

    给正式环境打包

    mvn clean install -Dmaven.test.skip=true -Pprod

  • 相关阅读:
    让程序在后台长久运行的方法
    unrecognized selector sent to instance的定位
    CocoaLumberjack调试的简单使用
    #pragma
    __bridge __bridge_retained __bridge_transfer
    关于c#继承
    C#__ 模拟鼠标单击事件
    C# 调用win api获取chrome浏览器中地址
    认识安卓
    源码解析-Volley(转自codeKK)
  • 原文地址:https://www.cnblogs.com/deolin/p/7830761.html
Copyright © 2011-2022 走看看