This post describes the most notables changes of coursier
coursier got support for mirrors, kind of like Maven has. Mirrors allow to substitute some repositories for others. This can be useful with internal Maven repositories mirroring Maven Central for example. In that case, you'd prefer requests to go to that mirror rather than to Maven Central.
Mirrors are automatically picked from the API (unless explicitly disabled) and the CLI.
They can be configured via configuration files, namely
~/.config/coursier/mirror.properties on Linux, and
~/Library/Preferences/Coursier/mirror.properties on OS X. For example, these settings allow to replace Maven Central with JCenter
Mirrors should be described in more detail in the coursier documentation in a later time.
New ways of passing credentials
The CLI and API of coursier now accepts credentials via the environment, via Java properties, or configuration files. These are described in more detail in the dedicated documentation page. Beware that some details may change a bit before the release of
HTTP redirections are now handled by some custom code, rather than by
java.net.HttpURLConnection. (This introduced some regressions, now fixed in subsequent releases.) This allows a more refined handling of credentials when redirections happen (credentials can be stripped, or added if their settings allow it, in particular).
This should also allow users to more finely tune whether credentials should be sent upfront, without waiting for a 403 Unauthorized response (to be added to the dedicated documentation page).
Most parsers were moved in dedicated objects under the
coursier.parse namespace. That includes
RepositoryParser in particular.
High level API
The new high level API kept evolving / getting refined.
A regression in the code handling XML, since
SAXParseException, was fixed.