项目的resources-META-INF文件夹,即autoconfig文件夹。包含两个文件夹和一个文件。

environments文件夹:定义不同开发环境,如online,dev(线下),staging(线上测试),test(QA)。目录越深的文件配置,会覆盖顶层的配置。

templates文件夹:其中定义了大量.vm文件,即生成.xml的模板配置。

autoconfig.xml:定义autoconfig插件中,源.vm文件和运行时.xml文件的一一映射关系。

autoconfig插件工作原理:

根据autoconfig.xml定义的映射关系,和mvn打包时选择的开发环境-Denv_config=online(online为environments之一),将templates中定义的配置选项映射为实际的.xml文件,参与运行配置。

META-INF文件夹用其下的environments和templates,生成了父文件夹(resources)下的其他全部文件。

根据 auto-config 咱们就可以在 maven 命令行里用  -Denv_config=online 来指定使用不同的环境(online, staging, offline, dev)配置。

 

在 environments 目录下,是按照不同的环境配置相应的 properties 。 

properties文件中的属性名字不能包含“.”  wrong:movie.remote.url   right:movie_right_url。

template 目录下,放置 xml 或者 properties 文件。 文件中可以使用 velocity 模板语法,来适配不同的 env_config。 

template 目录下,xml 或者 properties 文件可以使用 environments 目录下的配置属性引用 : ${property_name}

posted on 2016-05-14 13:38  hh6plus  阅读(349)  评论(0编辑  收藏  举报