-
Notifications
You must be signed in to change notification settings - Fork 95
/
project.clj
137 lines (113 loc) · 5.22 KB
/
project.clj
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
;; This top level project file is used to provide a single place to run lein tasks against all of
;; the CMR libraries and applications. It makes use of lein-modules to accomplish the orchestration.
;; See https://github.com/jcrossley3/lein-modules for details.
;;
;; Examples:
;; 'lein modules clean' will run lein clean in every project subdirectory.
;; 'lein modules install' will run lein install in every project subdirectory. Lein-modules will
;; make sure to build the libraries and applications in the correct order based on the individual
;; project dependencies.
;; 'lein with-profile uberjar modules uberjar' will build uberjars for all of the CMR applications
;; listed in the uberjar profile.
;; 'CMR_ELASTIC_PORT=9206 lein modules do clean, install, test-out' will set the elastic port to use
;; as an environment variable, run clean in all project subdirectories, install in all project
;; subdirectories, and then test-out in all project subdirectories.
(defproject nasa-cmr/cmr "0.1.0-SNAPSHOT"
:description "Top level project to support all CMR libraries and applications."
:plugins [[lein-modules "0.3.11"]
[lein-shell "0.5.0"]]
:profiles {:uberjar {:modules {:dirs ["access-control-app"
"bootstrap-app"
"indexer-app"
"ingest-app"
"metadata-db-app"
"search-app"
"virtual-product-app"
"es-spatial-plugin"
"dev-system"]}}}
:modules {:dirs [;; Libraries and Resources
"acl-lib"
"common-app-lib"
"common-lib"
"elastic-utils-lib"
"es-spatial-plugin"
"message-queue-lib"
"oracle-lib"
"orbits-lib"
"redis-utils-lib"
"schema-validation-lib"
"schemas"
"site-templates"
"spatial-lib"
"system-int-test"
"transmit-lib"
"umm-lib"
"umm-spec-lib"
;; Services
"access-control-app"
"bootstrap-app"
"indexer-app"
"ingest-app"
"metadata-db-app"
"mock-echo-app"
"search-app"
"virtual-product-app"
;; Related apps
"dev-system"
"search-relevancy-test"]}
:aliases {"kibit"
["modules" "kibit"]
"eastwood"
["modules" "eastwood"]
"lint"
["modules" "lint"]
;; The reason for this is to export the current list of modules for use in scripts. For
;; instance, a script may wish to run all the unit tests for sub projects and said
;; script does not want to hard code what modules those are.
"dump" ["modules"]
"check-deps"
["modules" "check-deps"]
"check-sec"
["modules" "check-sec"]
"deps-tree-conflicts"
["modules" "deps" ":tree"]
"generate-static"
["modules" "generate-static"]
;; Run a local copy of SQS/SNS
"start-sqs-sns"
["shell" "cmr" "start" "local" "sqs-sns"]
"stop-sqs-sns"
["shell" "cmr" "stop" "local" "sqs-sns"]
"restart-sqs-sns"
["do"
["stop-sqs-sns"]
["start-sqs-sns"]]
;; Dev
"clean-all" ["modules" "do" "clean"]
"repl"
["shell"
"echo" "You need to be in the `dev-system` directory for that."]
"test"
["modules" "test-out"]
;; Do not use modules to run unit tests, instead use a script where multiple threads can
;; be used to process the projects faster.
"ci-utest"
["shell" ./bin/unit_test_script/run_unit_tests.py]
;; Install tasks using up-stream .jar repos
"install-no-clean!"
["modules" "do" "clean," "install,"]
"install!"
["modules" "do" "clean," "install," "clean"]
"install-with-content-no-clean!"
["modules" "do" "clean," "generate-static," "install,"]
"install-with-content!"
["modules" "do" "clean," "generate-static," "install," "clean"]
;; Install tasks using nexus .jar repos proxy
"internal-install-no-clean!"
["modules" "with-profile" "+internal-repos" "do" "clean," "install,"]
"internal-install!"
["modules" "with-profile" "+internal-repos" "do" "clean," "install," "clean"]
"internal-install-with-content-no-clean!"
["modules" "with-profile" "+internal-repos" "do" "clean," "generate-static," "install,"]
"internal-install-with-content!"
["modules" "with-profile" "+internal-repos" "do" "clean," "generate-static," "install," "clean"]})