Adds :leaky and :pom-scope metadata for profiles. The :dev, :test,
:base and :provided profiles are implemented in terms of these.
Profiles with :leaky metadata affect the pom and jar creation.
Profiles with a :pom-scope metadata of :test or :provided also affect
the dependencies of a pom.
We need to revisit this in a way that doesn't involve hard-coding
profile names into the jar and pom tasks. The question of whether the
profile should be visible to downstream consumers should be determined
by data that's part of the profile (or metadata).
This allows profiles to set a -Dfile.encoding. Later, perhaps in 3.0,
JVM_OPTS should perhaps be moved farther down the list (along with
:jvm-opts?) -- but that could be a breaking change. (Environment is
sometimes set locally, sometimes set globally.)
Add a raw-read alternative that reads without initializing.
This solves a certain chicken/egg problem with wanting to read profiles
from plugins before the plugins had been loaded.
This allows the JVM to be run with an encoding other than UTF-8; my
own use-case for this is running tests to check if I'm forgetting to
specify UTF-8 in any character encoding/decoding calls.
The :project profile is not un-merged when building a jar or generating
a pom, so can be used to alter the basic layout of a project.
This allows plugins such as cljx and cljsbuild to provide profiles that
the project can choose to use to set source-paths, etc, leading to less
error-prone configuration in common use cases.
Fixes#1665
Unmerge expanded its profiles based on the profiles in the project
map (which don't include :default), rather than profiles in the
:profiles metadata.
The :default keys were also hard coded in the pom generation, so ignored
any additions.
This is in support of https://github.com/lynaghk/cljx/pull/48
This basically works like in curl, you specify @filename and then the
contents of the file are literally used as if written on the CLI.
@TODO this will not work:
lein repl :connect @./some/file
because there is no realpath resolution
but this works:
lein repl :connect @/full/path
and this as well:
lein repl :connect @some/file