zoukankan      html  css  js  c++  java
  • maven实战-----读书笔记之第十四章

    第十四章 灵活的构建

    1.Maven属性:

    2.构建环境的差异

    在不同的环境中,项目的源码应该使用不同的方式进行构建,最常见的是数据库配置,

    生产环境数据库配置

    测试环境数据库配置

    我们常见的做法是,先改好了之后再去构建,但是,maven针对不同的环境生成不同的构件,为了应对环境的变化,首先需要使用maven属性将这些会发生变化的部分提取出来,连接数据库时,url,用户名,密码都有可能发生变化,因此用maven属性代替它,如下图所示:

    这里定义了四个maven属性,既然用到了maven属性,就应该在某个地方定义它,我们可以新增一个profile将其包裹起来,注意的是,他定义的四个maven属性与properties文件下的${db.username}等四个配置相同,这样才可以匹配起来如下图所示:

    这里使用了一个id为dev的profile,目的是将开发环境与其他环境区分开来,有了属性定义,配置文件中也使用了这些文件,还要做的是,maven的属性默认只会在pom文件中被解析,所以,我们需要propeties也要认识这四个属性,因此需要让maven解析资源文件的maven属性,其实是maven-resources-plugin插件要做的事情,首先我们要为资源开启过滤,在pom.xml的build添加下面几行,如下图所示:

     到这里,我们将数据库配置的变化部分提取成了maven属性,在pom的porfile中定义了这些属性的值,并且为资源目录开启了属性过滤,最后,主需要在命令行激活profile,maven就能够在构建项目的时候使用profile中的属性值替换数据库配置文件中的属性引用

    输入命令: mvn clean install -Pdev 

    针对不同环境的profile

    输入命令: mvn clean install -Pdev,-Ptest ,此时会激活dev和test这两个profile

    上面介绍了命令行激活,下面我们看看其他几种激活方式

     

    2.profile的种类

  • 相关阅读:
    perl中shift 和unshift 操作
    Perl 关于 use strict 的用法
    Windows7鼠标右键里没有新建文本文件的选项,解决办法
    大唐笔试题
    常用的设计模式
    优化C++程序编译效率的一些方法
    TCP连接,传输数据时的粘包问题讨论
    单链表是否有环及环入口点
    构造函数和析构函数能否声明为虚函数?
    azkaban 执行hive语句
  • 原文地址:https://www.cnblogs.com/hejj-bk/p/11423820.html
Copyright © 2011-2022 走看看