zoukankan      html  css  js  c++  java
  • 《Maven实战》第14章 灵活的构建

    • 面对不同环境的差异能够灵活的构建项目,
      • 操作系统的差异
      • 开发环境、测试环境、产品环境的差异(最常用)
      • 不同客户的差异
    • Maven中灵活的构建:属性、资源过滤、profile
    • 14.1Maven属性
      • 6类Maven属性
        • 内置属性:${basedir}表示项目根目录,及包含pom.xml文件的目录;${version}表示项目的版本
        • POM属性:可用于引用pom文件中对应元素的值。
          • 重要的pom属性
        • 自定义属性:pom中<properties>下自定义的属性
        • Settings属性:可用于引用settings.xml文件中元素的值,以settings.开头。
          • 示例:${settings.localRepository}可引用本地仓库的地址
        • Java系统属性:可用于引用Java系统属性。可使用mvn help:system查看Java系统属性。
        • 环境变量属性:可用于引用环境变量,以env.开头。可使用mvn help:system查看所有环境变量。
          • 示例:${env.JAVA_HOME}可引用JAVA_HOME环境变量。
    • 14.2 资源过滤
      • 将不同的环境下的配置抽取出来,如数据库配置,依照不同的环境使用不同的配置
      • 一般资源文件:
        • src/main/resources/目录下,打包后位于WAR包的WEB-INF/classes,即应用程序的classpath中
      • web资源文件:
        • src/main/webapp目录下,打包后位于WAR包的根目录,及打包后不在应用程序的classpath中
      • 一般资源文件和web资源文件默认都不会被过滤,两者的过滤不会相互影响,即:开启一般资源文件过滤不会影响到web资源过滤
    • 14.3 profile
    • 配置profile

      根据不同环境配置profile,并默认激活online
      <profiles>
          <profile>
              <id>online</id>
              <activation>
                  <activeByDefault>true</activeByDefault>
              </activation>
              <properties>
                  <resource.path>src/main/profile/online</resource.path>
              </properties>
          </profile>
          <profile>
              <id>offline</id>
              <properties>
                  <resource.path>src/main/profile/offline</resource.path>
              </properties>
          </profile>
      </profiles>
    • 资源过滤

          <finalName>leaf</finalName>
          <filters>
              <!-- 定义了变量配置文件的地址 -->
              <filter>${resource.path}/profile.properties</filter>
          </filters>
          <resources>
              <resource>
                  <directory>src/main/resources</directory>
                  <!-- 为true,会将相关文件中${property}的地方,用profile.properties中的变量进行替换 -->
                  <filtering>true</filtering>
                  <includes>
                      <include>**/*.xml</include>
                      <include>**/*.properties</include>
                  </includes>
              </resource>
              <resource>
                  <directory>${resource.path}</directory>
              </resource>
          </resources>
      </build>
    • 使用-P参数激活:mvn clean package -Poffline
    • src/main/profile/offline/profile.properties
      db.url=infleaf_inf_leaf_dev
      db.username=inf_leaf
      #app.key=com.sankuai.inf.leaf.service
      app.key=com.sankuai.inf.leaf.service
      zk.hosts=10.20.63.112:2181,10.20.62.112:2181,10.20.41.42:2181
    • springContext.xml

      //other configurations
      <!-- 本机appkey -->
      <bean id="appKey" class="java.lang.String">
          <constructor-arg value="${app.key}"/>
      </bean>
      //other configurations
  • 相关阅读:
    [记录]MySQL 查询无法导出到文件
    Unity3D 在Update中不要过多地修改Transform 信息
    Unity3D 中 脚本(MonoBehaviour) 生命周期WaitForEndOfFrame需要注意的地方
    RunTime的简单使用
    GIT命令行的使用
    UIImagePickerController和UIAlertController结合使用
    NSSortDescriptor对象进行数组排序
    for..in遍历,枚举器
    Objective
    Objective
  • 原文地址:https://www.cnblogs.com/yeyang/p/9131101.html
Copyright © 2011-2022 走看看