zoukankan      html  css  js  c++  java
  • maven的配置文件取不同版本

    1. 两个地方需要配置
    首先是要定义配置源,dev/test/prod对应的配置源需要指定;这是灵活的,可变的;
    其次要定义配置文件,该配置文件里面的内容采用占位符的方式来编制,在编译打包的过程中要动态根据配置源来进行填充。

    2. 定义配置分类
    对于第一个地方,配置分类,是要在maven的pom文件中的<profiles>中定义<profile>节点中进行定义,指定各种配额场景的配置源路径,以及配置项,这里注意,配置项(properties节点)只是应用于POM文件(占位符的替换),配置源路径指定的文件则是用于配置指定的配置文件(下面要讲到的),下面的配置定义了两类配置分类,分别是dev和test

     1     <profiles>
     2         <profile>
     3             <id>dev</id>
     4             <activation>
     5                 <activeByDefault>true</activeByDefault>
     6             </activation>
     7             <properties>
     8                 <filters.env>dev</filters.env>
     9                 <mvn.upload.serverId>deploy_server_65</mvn.upload.serverId>
    10                 <mvn.upload.url>scp://root@10.1.108.68:/var/lib/hbase</mvn.upload.url>
    11                 <mvn.upload.command>rm -rf /var/lib/hbase/bigdata-stat-3.2.2.jar</mvn.upload.command>
    12                 <mvn.upload.phase>package</mvn.upload.phase>
    13             </properties>
    14         </profile>
    15         <profile>
    16             <id>test</id>
    17             <properties>
    18                 <filters.env>test</filters.env>
    19                 <mvn.upload.serverId>deploy_server_104</mvn.upload.serverId>
    20                 <mvn.upload.url>scp://iotwh@192.168.156.104:/home/iotwh</mvn.upload.url>
    21                 <mvn.upload.command>rm -rf /home/iotwh/bigdata-stat-3.2.2.jar</mvn.upload.command>
    22                 <mvn.upload.phase>install</mvn.upload.phase>
    23             </properties>
    24         </profile>

      这里的<id>和<filter.env>是关键,未来通过命令行进行启动的"-Ptest"中的"test"就是id;properties里面的定义的内容都是在对应POM文件内部占位符;比如filters.env就是用于指定路径的一部分:

        <build>
            <resources>
                <resource>
                    <directory>${project.basedir}/src/main/resources</directory>
                    <filtering>true</filtering>
                </resource>
            </resources>
            <filters>
                <filter>${project.basedir}/filters/${filters.env}/conf.properties</filter>
            </filters>
    ... ....
      </build>

      这段配置指定了要处理占位符的文件,这里是指src/main/resources下面的所有的配置文件;占位符替换的内容在filter中有定义,${filters.env}这里分别是dev以及test,即如果在命令行中指定-Pdev,则采用dev/conf.properites里面的文件进行替换src/main/resources下面文件的占位符,如果是-Ptest,同样处理。
    定义配置文件以及配置源
      这段代码指定了第二部分内容,指定配置源文件:

    1         <filters>
    2             <filter>${project.basedir}/filters/${filters.env}/conf.properties</filter>
    3         </filters>

      以下部分指定了资源文件路径,该目录下的配置文件内部的占位符都将会被填充:

    1             <resource>
    2                 <directory>${project.basedir}/src/main/resources</directory>
    3                 <filtering>true</filtering>
    4             </resource>

      filter节点里面指定的就是配置文件,resource文件夹中的占位符都是通过指定的配置文件内容进行填充。比如resources文件夹下面的app.config

    data.path=${data.path}
    output.path=${output.path}
    pboss.files=${pboss.files}
    back.path=${back.path}
  • 相关阅读:
    Codeforces 662 C. Binary Table
    Codeforces 923 D. Picking Strings
    Codeforces 923 C. Perfect Security
    Codeforces 923 B. Producing Snow
    Codeforces 923 A. Primal Sport
    bzoj千题计划288:bzoj1876: [SDOI2009]SuperGCD
    Configuring HugePages for Oracle on Linux (x86-64)
    Oracle 11g新参数USE_LARGE_PAGES与AMM使用 (转载)
    Linux Hugepage ,AMM及 USE_LARGE_PAGES for oracle 11G(转载)
    Oracle教程:如何诊断节点重启问题(转载)
  • 原文地址:https://www.cnblogs.com/xiashiwendao/p/7860319.html
Copyright © 2011-2022 走看看