playframework/play1 — pull request #753 by dhensche (2014-05-01 18:57:08+00:00)
Title: Customizable dependency configuration

Currently, the dependency mapping is `default->*` but this is problematic when you depend on libraries that have huge lists of optional dependencies. This results in either you excluding each one individually or specifying `transitive: false`, which is also bad because that also excludes required transitive dependencies. This commit introduces a new top level value that can be used in dependencies.yml. It allows you to specify
```
configurations:
- optional:
exclude: true
```
The way this functions is, if no configs are provided then the default mapping is used (`default -> *`). If only `exclude` mappings are provided, then the mapping becomes `default -> *, !excludedConfig1, !excludedConfig2,...`. Ivy will then depend on all configurations that are not excluded. If at least one non-excluded configuration is provided, the the listed configurations are all that will be used. For example:
```
configurations:
- compile
- runtime
- optional:
exclude: true
```
will map to `default -> compile, runtime, !optional`