Sometimes we need to override *parts* of a prticular profile on a project-specific base. To a novice
lein user, it is likely not clear how to achieve this. This tip points her in the right direction -
using a composite profile with a "personal" part that can be overriden in `profiles.clj` to change
what is in the "common" part of the profile.
While "Declaring Profiles" states that "Profiles specified in `profiles.clj` will override
profiles in `project.clj`," some less attentive reader can interpret it so that *keys/values* from profiles.clj override those from project.clj, not that the profile as whole is replaced. This changes
tries to make it really clear. (Of course feel free to change the wording as you see fit.)
It used to be we would merge a bunch of profiles into the project, and
then trim out dupes based on group/artifact/version, which was totally
wrong; it ignores classifiers and extensions.
Normally I prefer to remain silent if everything succeeds, but the
fact that install calls pom and jar, which are not silent, means it's
confusing if you don't see anything for install itself.
When running on OS X, an exception thrown in a plugin was resulting in
no output from lein. Adding the flush ensures the output occurs before
the process exits.
Still get a couple warnings... We don't really care about the
unlimited-use warnings from clojure.test, and there are a couple
warnings we get stemming from bugs/limitations in Eastwood.
# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.
This mainly addresses the fact that the following two commands generate
different output:
$ lein pom
$ lein with-profile default pom
I believe the problem also affects uberjar, since both tasks unmerge
:default prior to doing their thing.
Version 2.3.4 generates the same output for the above two commands,
because it doesn't expand profiles in the with-profile task, as master
does. So this change attempts to only deal with fully-expanded profiles
when [un]merging them.