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的种类