Édipo Féderle
Édipo Féderle

Reputation: 4257

project.clj understanding some parts

I am create a web application with duct lein template.

Now I am looking at project.clj to see how its works.

But I don't know if I undersant correcntly this particular part:

 {: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"}}

For example:

Whats this [:project/dev :profiles/dev] mean? and why I have a :dev key and a :project/dev key. I know it is probably about profiles.clj file. But I did don't really understand it right.

Maybe my question seems a little bit silly, but I hope I have been myself clear.

Upvotes: 2

Views: 109

Answers (1)

ClojureMostly
ClojureMostly

Reputation: 4713

This is described in composite profiles:

Sometimes it is useful to define a profile as a combination of other profiles. To do this, just use a vector instead of a map as the profile value. This can be used to avoid duplication:

{: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"]}]}

Upvotes: 2

Related Questions