You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
| `:packages` | `string? \| #{string?}` | "./packages/\*\*" | A glob or set of file globs that describe the set of packages included in the workspace |
213
+
| `:group` | `symbol?` | `nil` | The mvn group to apply to any packages in the workspace that have not specified a group |
214
+
| `:repl-aliases` | `[keyword?]` | `nil` | A set of `deps` aliases to include when running `kmono repl` |
215
+
| `:aliases` | `[keyword?]` | `nil` | A set of `deps` aliases to include for all kmono workspace commands by default |
216
+
| `:package-aliases` | `[keyword?]` | `nil` | A set of namespaced [alias globs](#alias-globs) that describe the aliases of packages within the workspace to include in the classpath |
217
+
218
+
Example:
219
+
220
+
```clojure
221
+
;; deps.edn
222
+
{:kmono/workspace {:group com.example
223
+
:packages #{"./(packages|modules)/**"}
224
+
;; Include any `:test` aliases from all (`*`) packages in the
225
+
;; workspace
226
+
:package-aliases [:*/test]}
227
+
228
+
:paths ["src" "resources"]
229
+
230
+
:deps {...}}
231
+
```
232
+
233
+
### Package Configuration
234
+
235
+
Packages in the workspace can optionally provide their own configuration metadata. This is done by setting a
236
+
`:kmono/package {}` config field in the packages `deps.edn` file. This config accepts the following properties:
| `:group` | `symbol?` | `nil` | The mvn group to use for this package. If not specified, the `:group` specified in the root `:kmono/workspace` configuration will be used. |
241
+
| `:name` | `string? \| symbol?` | `$dir` | The name of the package. If not set the name of the parent directory containing the packages'`deps.edn` file will be used as the package name |
242
+
|`:excluded`|`boolean?`|`false`| Whether or not this package is excluded from the project workspace |
243
+
244
+
Example
245
+
246
+
```clojure
247
+
;; packages/example/deps.edn
248
+
{:kmono/package {;; Maven artifacts group
249
+
:group com.example
250
+
;; Override the default package name
251
+
:name example-lib}
252
+
253
+
:paths ["src"]
254
+
:deps {...}
255
+
:aliases {:test {...}}}
256
+
```
257
+
258
+
### Local-Only Configuration Overrides
259
+
260
+
Kmono will automatically readin a `deps.local.edn` file from the project root and deep-merge it with the root
261
+
`deps.edn` file if present.
262
+
263
+
This is very useful for adding additional configuration such as default-enabled project aliases, new project-specific
264
+
dev-only deps aliases or any other metadata in a way that is local to the developers environment and won't be committed
265
+
to the project.
266
+
267
+
This `deps.local.edn` file should typically be added to `.gitignore`.
268
+
269
+
The below is a good example of how this `deps.local.edn` config might be used in someones environment:
270
+
271
+
```clojure
272
+
{:kmono/workspace {;; Add the :nrepl alias from ~/.clojure/deps.edn when running
273
+
;; `kmono repl`
274
+
:repl-aliases [:nrepl]
275
+
;; - Include the :dev alias from ~/.clojure/deps.edn
276
+
;;
277
+
;; - Include the :local alias defined below
278
+
:aliases [:dev :local]}
279
+
280
+
:aliases {;; Define a custom local-only alias for this project
281
+
:local {;; Override some dependency with a locally checked out copy
0 commit comments