项目的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}