Build tasks for working with monolithic projects. See [[mono]].
Build tasks for working with monolithic projects. See [[mono]].
Usage: clj -m trident.build.mono [options] <subcommand> [<args>]
Work with monolithic projects.
Options:
-h, --help
Subcommands:
reset Creates project directories for a monolithic project.
info Prints artifact information.
See `<program> <subcommand> --help` to read about a specific subcommand.
``` Usage: clj -m trident.build.mono [options] <subcommand> [<args>] Work with monolithic projects. Options: -h, --help Subcommands: reset Creates project directories for a monolithic project. info Prints artifact information. See `<program> <subcommand> --help` to read about a specific subcommand. ```
(info {:keys [projects group-id]})
Prints artifact information.
Prints artifact information.
(reset {:keys [projects group-id managed-deps] :as opts} & libs)
Creates project directories for a monolithic project.
If no projects are specified, operates on all projects. Configuration is stored
in the :trident/mono
key of deps.edn
. Example:
{:trident/mono
{; Individual projects are defined here. All source files are kept in the same
; top-level `src` directory, and the keys of :projects define which source
; files belong to which projects.
;
; For example, anything in the trident.util namespace (or in a child namespace)
; belongs to the util project. The project directory will be created at
; `target/util/`, and a deps.edn file will be created that includes the
; dependencies specified here.
;
; :local-deps specifies dependencies to other projects. For example, the source
; files and dependencies of the util project will also be included in the cli
; project.
;
; In the project directories, source files are included by creating symbolic
; links to files and directories in the top-level `src` directory. So you
; continue to edit files in the top-level `src`, and individual projects will
; get the changes immediately.
;
; Anything in the project maps (other than :deps and :local-deps) will be
; merged into the projects' deps.edn files.
:projects
{repl {:deps [org.clojure/tools.namespace
mount
orchestra
nrepl]}
util {:deps [org.clojure/core.async
orchestra
com.taoensso/encore]}
cli {:local-deps [util]
:deps [me.raynes/fs
org.clojure/tools.cli
net.java.dev.jna/jna
com.github.jnr/jnr-posix]}
build {:local-deps [util cli]
:deps [org.clojure/data.xml
org.clojure/data.zip
deps-deploy
me.raynes/fs
jobryant/pack
org.clojure/tools.deps.alpha]}}
; You can specify versions for dependencies here. This way, all projects will
; use the same versions.
:managed-deps
{com.github.jnr/jnr-posix {:mvn/version "3.0.49"}
com.taoensso/encore {:mvn/version "2.112.0"}
deps-deploy {:mvn/version "0.0.9"}
jobryant/pack {:mvn/version "1.0"}
me.raynes/fs {:mvn/version "1.4.6"}
mount {:mvn/version "0.1.15"}
net.java.dev.jna/jna {:mvn/version "5.3.1"}
nrepl {:mvn/version "0.6.0"}
orchestra {:mvn/version "2019.02.06-1"}
org.clojure/clojure {:mvn/version "1.9.0"}
org.clojure/core.async {:mvn/version "0.4.490"}
org.clojure/data.xml {:mvn/version "0.2.0-alpha5"}
org.clojure/data.zip {:mvn/version "0.1.3"}
org.clojure/tools.cli {:mvn/version "0.4.2"}
org.clojure/tools.deps.alpha {:mvn/version "0.6.496"}
org.clojure/tools.namespace {:mvn/version "0.2.11"}}
; :aliases will be included verbatim in each project's deps.edn
:aliases {:dev {:extra-deps {trident-repl {:local/root "../repl"}}}}
; The following keys will be included under the :trident/lib key in deps.edn
; for each project. :artifact-id and :git-dir keys will also be automatically
; included.
:version "0.1.3-SNAPSHOT"
:group-id "trident"
:github-repo "jacobobryant/trident"
:cljdoc-dir "/home/arch/dev/cljdoc/"}
Creates project directories for a monolithic project. If no projects are specified, operates on all projects. Configuration is stored in the `:trident/mono` key of `deps.edn`. Example: ``` {:trident/mono {; Individual projects are defined here. All source files are kept in the same ; top-level `src` directory, and the keys of :projects define which source ; files belong to which projects. ; ; For example, anything in the trident.util namespace (or in a child namespace) ; belongs to the util project. The project directory will be created at ; `target/util/`, and a deps.edn file will be created that includes the ; dependencies specified here. ; ; :local-deps specifies dependencies to other projects. For example, the source ; files and dependencies of the util project will also be included in the cli ; project. ; ; In the project directories, source files are included by creating symbolic ; links to files and directories in the top-level `src` directory. So you ; continue to edit files in the top-level `src`, and individual projects will ; get the changes immediately. ; ; Anything in the project maps (other than :deps and :local-deps) will be ; merged into the projects' deps.edn files. :projects {repl {:deps [org.clojure/tools.namespace mount orchestra nrepl]} util {:deps [org.clojure/core.async orchestra com.taoensso/encore]} cli {:local-deps [util] :deps [me.raynes/fs org.clojure/tools.cli net.java.dev.jna/jna com.github.jnr/jnr-posix]} build {:local-deps [util cli] :deps [org.clojure/data.xml org.clojure/data.zip deps-deploy me.raynes/fs jobryant/pack org.clojure/tools.deps.alpha]}} ; You can specify versions for dependencies here. This way, all projects will ; use the same versions. :managed-deps {com.github.jnr/jnr-posix {:mvn/version "3.0.49"} com.taoensso/encore {:mvn/version "2.112.0"} deps-deploy {:mvn/version "0.0.9"} jobryant/pack {:mvn/version "1.0"} me.raynes/fs {:mvn/version "1.4.6"} mount {:mvn/version "0.1.15"} net.java.dev.jna/jna {:mvn/version "5.3.1"} nrepl {:mvn/version "0.6.0"} orchestra {:mvn/version "2019.02.06-1"} org.clojure/clojure {:mvn/version "1.9.0"} org.clojure/core.async {:mvn/version "0.4.490"} org.clojure/data.xml {:mvn/version "0.2.0-alpha5"} org.clojure/data.zip {:mvn/version "0.1.3"} org.clojure/tools.cli {:mvn/version "0.4.2"} org.clojure/tools.deps.alpha {:mvn/version "0.6.496"} org.clojure/tools.namespace {:mvn/version "0.2.11"}} ; :aliases will be included verbatim in each project's deps.edn :aliases {:dev {:extra-deps {trident-repl {:local/root "../repl"}}}} ; The following keys will be included under the :trident/lib key in deps.edn ; for each project. :artifact-id and :git-dir keys will also be automatically ; included. :version "0.1.3-SNAPSHOT" :group-id "trident" :github-repo "jacobobryant/trident" :cljdoc-dir "/home/arch/dev/cljdoc/"} ```
(with-mono-options subcommands)
Wraps subcommands
with some CLI options for mono projects.
Wraps `subcommands` with some CLI options for mono projects.
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close