forked from puppetlabs/puppetserver
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathproject.clj
More file actions
159 lines (133 loc) · 7.96 KB
/
project.clj
File metadata and controls
159 lines (133 loc) · 7.96 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
(def clj-version "1.7.0")
(def tk-version "1.4.0")
(def tk-jetty-version "1.5.9")
(def ks-version "1.3.1")
(def ps-version "2.5.0-master-SNAPSHOT")
(defn deploy-info
[url]
{ :url url
:username :env/nexus_jenkins_username
:password :env/nexus_jenkins_password
:sign-releases false })
(defproject puppetlabs/puppetserver ps-version
:description "Puppet Server"
:dependencies [[org.clojure/clojure ~clj-version]
;; begin version conflict resolution dependencies
[puppetlabs/typesafe-config "0.1.5"]
[org.clojure/tools.macro "0.1.5"]
[org.clojure/tools.reader "1.0.0-beta1"]
[org.clojure/tools.logging "0.3.1"]
[ring/ring-servlet "1.4.0"]
[hiccup "1.0.5"]
;; end version conflict resolution dependencies
[cheshire "5.6.1"]
[slingshot "0.12.2"]
[clj-yaml "0.4.0" :exclusions [org.yaml/snakeyaml]]
[commons-lang "2.6"]
[commons-io "2.4"]
[clj-time "0.11.0"]
[prismatic/schema "1.1.1"]
[me.raynes/fs "1.4.6"]
[liberator "0.12.0"]
[org.apache.commons/commons-exec "1.3"]
[org.jruby/jruby-core "1.7.20.1"
:exclusions [com.github.jnr/jffi com.github.jnr/jnr-x86asm]]
;; jffi and jnr-x86asm are explicit dependencies because,
;; in JRuby's poms, they are defined using version ranges,
;; and :pedantic? :abort won't tolerate this.
[com.github.jnr/jffi "1.2.9"]
[com.github.jnr/jffi "1.2.9" :classifier "native"]
[com.github.jnr/jnr-x86asm "1.0.2"]
;; NOTE: jruby-stdlib packages some unexpected things inside
;; of its jar; please read the detailed notes above the
;; 'uberjar-exclusions' example toward the end of this file.
[org.jruby/jruby-stdlib "1.7.20.1"]
;; we do not currently use this dependency directly, but
;; we have documentation that shows how users can use it to
;; send their logs to logstash, so we include it in the jar.
;; we may use it directly in the future
[net.logstash.logback/logstash-logback-encoder "4.5.1"]
[puppetlabs/trapperkeeper ~tk-version]
[puppetlabs/trapperkeeper-authorization "0.7.0"]
[puppetlabs/kitchensink ~ks-version]
[puppetlabs/ssl-utils "0.8.1"]
[puppetlabs/ring-middleware "1.0.0"]
[puppetlabs/dujour-version-check "0.1.2" :exclusions [org.clojure/tools.logging]]
[puppetlabs/http-client "0.5.0"]
[puppetlabs/comidi "0.3.1"]]
:main puppetlabs.trapperkeeper.main
:pedantic? :abort
:source-paths ["src/clj"]
:java-source-paths ["src/java"]
:test-paths ["test/unit" "test/integration"]
:resource-paths ["resources" "src/ruby"]
:repositories [["releases" "http://nexus.delivery.puppetlabs.net/content/repositories/releases/"]
["snapshots" "http://nexus.delivery.puppetlabs.net/content/repositories/snapshots/"]]
:plugins [[lein-release "1.0.5" :exclusions [org.clojure/clojure]]]
:uberjar-name "puppet-server-release.jar"
:lein-ezbake {:vars {:user "puppet"
:group "puppet"
:build-type "foss"
:java-args "-Xms2g -Xmx2g -XX:MaxPermSize=256m"
:repo-target "PC1"
:bootstrap-source :services-d}
:resources {:dir "tmp/ezbake-resources"}
:config-dir "ezbake/config"
:system-config-dir "ezbake/system-config"}
:lein-release {:scm :git
:deploy-via :lein-deploy}
:deploy-repositories [["releases" ~(deploy-info "http://nexus.delivery.puppetlabs.net/content/repositories/releases/")]
["snapshots" ~(deploy-info "http://nexus.delivery.puppetlabs.net/content/repositories/snapshots/")]]
;; By declaring a classifier here and a corresponding profile below we'll get an additional jar
;; during `lein jar` that has all the code in the test/ directory. Downstream projects can then
;; depend on this test jar using a :classifier in their :dependencies to reuse the test utility
;; code that we have.
:classifiers [["test" :testutils]]
:profiles {:dev {:source-paths ["dev"]
:dependencies [[org.clojure/tools.namespace "0.2.10"]
[puppetlabs/trapperkeeper-webserver-jetty9 ~tk-jetty-version]
[puppetlabs/trapperkeeper-webserver-jetty9 ~tk-jetty-version :classifier "test"]
[puppetlabs/trapperkeeper ~tk-version :classifier "test" :scope "test"]
[puppetlabs/kitchensink ~ks-version :classifier "test" :scope "test"]
[ring-basic-authentication "1.0.5"]
[ring-mock "0.1.5"]
[spyscope "0.1.4" :exclusions [clj-time]]
[grimradical/clj-semver "0.3.0" :exclusions [org.clojure/clojure]]
[beckon "0.1.1"]]
:injections [(require 'spyscope.core)]
; SERVER-332, enable SSLv3 for unit tests that exercise SSLv3
:jvm-opts ["-Djava.security.properties=./dev-resources/java.security"]}
:testutils {:source-paths ^:replace ["test/unit" "test/integration"]}
:ezbake {:dependencies ^:replace [;; we need to explicitly specify the clojure version
;; here, because without it, lein brings in its own
;; version, and older versions of lein (such as version
;; 2.5.1 that is used on our jenkins servers at the time
;; of this writing) depend on clojure 1.6.
[org.clojure/clojure ~clj-version]
[puppetlabs/puppetserver ~ps-version]
[puppetlabs/trapperkeeper-webserver-jetty9 ~tk-jetty-version]
[org.clojure/tools.nrepl "0.2.3"]]
:plugins [[puppetlabs/lein-ezbake "0.4.2"]]
:name "puppetserver"}
:uberjar {:aot [puppetlabs.trapperkeeper.main]
:dependencies [[puppetlabs/trapperkeeper-webserver-jetty9 ~tk-jetty-version]]}
:ci {:plugins [[lein-pprint "1.1.1"]]}
:voom {:plugins [[lein-voom "0.1.0-20150115_230705-gd96d771" :exclusions [org.clojure/clojure]]]}}
:test-selectors {:integration :integration
:unit (complement :integration)}
:aliases {"gem" ["trampoline" "run" "-m" "puppetlabs.puppetserver.cli.gem"]
"ruby" ["trampoline" "run" "-m" "puppetlabs.puppetserver.cli.ruby"]
"irb" ["trampoline" "run" "-m" "puppetlabs.puppetserver.cli.irb"]}
; tests use a lot of PermGen (jruby instances)
:jvm-opts ["-XX:MaxPermSize=256m" "-Xmx2g"]
:repl-options {:init-ns user}
;; NOTE: jruby-stdlib packages some unexpected things inside
;; of its jar. e.g., it puts a pre-built copy of the bouncycastle
;; jar into its META-INF directory. This is highly undesirable
;; for projects that already have a dependency on a different
;; version of bouncycastle. Therefore, when building uberjars,
;; you should take care to exclude the things that you don't want
;; in your final jar. Here is an example of how you could exclude
;; that from the final uberjar:
:uberjar-exclusions [#"META-INF/jruby.home/lib/ruby/shared/org/bouncycastle"]
)