project.clj了解一些部分

时间:2016-05-25 12:16:17

标签: clojure leiningen

我正在使用duct lein template创建一个Web应用程序。

现在我正在查看project.clj以了解其工作原理。

但我不知道我是否对这个特殊部分进行了严格的解释:

 {:dev  [:project/dev  :profiles/dev]
   :test [:project/test :profiles/test]
   :uberjar {:aot :all}
   :profiles/dev  {}
   :profiles/test {}
   :project/dev   {:dependencies [[duct/generate "0.6.1"]
                                  [reloaded.repl "0.2.1"]
                                  [org.clojure/tools.namespace "0.2.11"]
                                  [org.clojure/tools.nrepl "0.2.12"]
                                  [eftest "0.1.1"]
                                  [kerodon "0.7.0"]]
                   :source-paths ["dev"]
                   :repl-options {:init-ns user}
                   :env {:port "3000"}}

例如:

这个[:project/dev :profiles/dev]是什么意思?为什么我有一个:dev密钥和一个:project/dev密钥。 我知道它可能是profiles.clj文件。但我确实不太了解它。

也许我的问题看起来有些愚蠢,但我希望我一直很清楚。

1 个答案:

答案 0 :(得分:2)

composite profiles

中对此进行了描述
  

有时将配置文件定义为其他配置文件很有用   配置文件。要做到这一点,只需使用矢量而不是地图作为   资料价值。这可以用来避免重复:

{:shared {:port 9229, :protocol "https"}
 :qa [:shared {:servers ["qa.mycorp.com"]}]
 :stage [:shared {:servers ["stage.mycorp.com"]}]
 :production [:shared {:servers ["prod1.mycorp.com", "prod1.mycorp.com"]}]}