根据lein配置文件执行不同的代码?

时间:2014-07-20 09:27:38

标签: clojure leiningen

我希望我的代码在开发中的表现与在生产中的表现略有不同;例如,当启动开发配置文件时,实际上不会在Facebook上发布内容。现在我想我可以使用robert-hooke为我不想在开发中运行的函数添加钩子;但是,如何检查哪些配置文件已激活?

我还检查了environ,它看起来很适合开发与生产配置,但似乎没有解决我的问题。

我不认为这是一个罕见的问题,所以如果已经有一些可以接受的方法来解决这个问题;大。

1 个答案:

答案 0 :(得分:3)

如果您查看一下luminus留言簿示例,它实际上是使用了set an environment variable :dev的个人资料,然后是应用内的environ to read it back。 Environ建议使用12 factor app作为模型,这会在应用程序内部进行分组配置。 Leiningen让我们通过命名实际应用程序外部的配置组来充分利用它们。遗憾的是,传递给应用程序的变量与配置文件的名称相同,因此可以在应用程序中对配置进行分组。将其命名为cache.disable但将其保留在开发配置文件中可以解决这个问题。

您还可以查看isolating dependencies进行开发。本文附近有一个使用System/getenv的示例,它也可以使用environ作为替代。