IDEA中WEB项目本地调试和发布的配置分开配置
一个Web项目,开发的时候设置了一些本地内容,比如IP地址,还有本地目录等。开发完成后,要发布到服务器上时,这些本地相关的配置,就需要配置成服务器上IP或目录。
原先的做法就是部署打包的时候,把相关的配置修改成服务器上的内容,再进行打包,然后发布。
这个过程非常麻烦,因为发布完后,还需要在本地进行开发,所以配置就得再修改回来。有时候发布的时候还忘了设置服务器端的配置,导致启动失败。
于是我一直查找相关的资料,一直没有找到能解决这个问题的资料。于是决定自己研究,终于找到在IDEA中,如何配置了。
以我当前项目为例,进行整个配置流程讲解。
项目的配置文件,统一放置在了一个目录:src/main/resources/conf/,这个目录下,有两个配置文件是配置了本地信息的,log4j.properties和jdbc.properties,一个配置了日志存储的目录,一个配置数据库的账号和密码。其中resources目录为标记为Resources类型。
首先进入Project Structure配置,选择Project Settings中的Artifacts,其中会有项目的war和war exploaded。配置war exploaded中会有compile output,从中可以看到这个目录将打包到哪个目录下,我这个项目将打包目录为:/WEB-INF/classes/conf/。所以我在项目根目录下创建了一个新的conf文件夹,并且按照这个打包后的目录创建/WEB-INF/classes/conf/目录,将两个配置文件复制到这个目录下,并将配置信息修改为服务器的配置。然后标记根目录下的这个conf为排除目录。返回到Artifacts设置war项,将根目录下的conf文件夹,添加为Directory contents,并且将按字母排序去掉,将这个配置放置到war exploaded之前。
这样打包war的时候,就会使用指定的配置文件夹覆盖旧的文件夹。达到了目的。