ALPHA - Not yet released
Note: currently only supports .clj
files.
Note: no explicit windowa support.
makejack uses two configuration files, project.edn
and mj.edn
.
All the makejack specific configuration takes place in mj.edn
, while
project.edn
describes your project in a tool agnostic fashion.
The project.edn
file could be used by other build tools, should they
decide to support it.
Both files are loaded using aero, and can use all aero’s default tags.
project.edn
The project.edn
file contains keys that describe your project. The
keys are shown in sample.project.edn.
These keys can use aero profiles to provide variants for these values. The targets can specify which profile to use. makejack’s default targets specify target specific profiles, named after the target itself.
The :aliases
key is used to specify the deps.edn
aliases to use.
mj.edn
The mj.edn
file is used to specify build targets on the :targets
key
, and to configure makejack. It does not use profiles. See
sample.mj.edn
Aero Tags Defined by Makejack
makejack defines several new aero tags, mainly for use in mj.edn
.
#mj
This is used as the top level tag in mj.edn
.
#mj {}
It is used inject default values into the makejack configuration. At
present it injects the :target-path
and the :classes-path
keys.
The provided map is merged into these default values.
{:target-path "target"
:classes-path "target/classes"}
#project
The #project
tage is used to inject the project.edn
file into
mj.edn
. It is passed a map with a :profile
key, specifying which
profile to load.
#default-targets
The #default-targets
tag is used to inject makejack’s default
targets. See [Targets]({{ relref “targets.md” }}).
#regex
The #regex
key can be used to define a regex from a string pattern.
#opt-ref
Like #ref
, but evaluates to
nil if the specified path is not found.