一直以来,凡是使用 disconf的程序均需要 disconf.properties
,在这个文件里去控制 app/env/version。
因此,我们要部署到不同的环境中,还是需要 不同的 disconf.properties
。
有一种解决方法是,通过 jenkins 来进行打包,准备多份 disconf.properties
文件。
真正的解决方法是,使用 java 命令行参数
目前 disconf 已经支持 disconf.properties
中所有配置项 通过参数传入方式 启动。
支持的配置项具体可参见: link
这样的话,未来大家只要通过 Java 参数 就可以 动态的改变启动的 app/env/version
java -Ddisconf.env=rd \
-Ddisconf.enable.remote.conf=true \
-Ddisconf.conf_server_host=127.0.0.1:8000 \
-Dlogback.configurationFile=logback.xml \
-Dlog4j.configuration=file:log4j.properties \
-Djava.ext.dirs=lib \
-Xms1g -Xmx2g -cp ampq-logback-client-0.0.1-SNAPSHOT.jar \
com.github.knightliao.consumer.ConsumerMain >/dev/null 2>&1 &
这里表示使用 disconf.env=rd