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