- Fix a memory leak in the gradle daemon caused by putting an object in a static context
- Minor performance optimization to rule matching
- Use
nebula.dependency-base
to adddependencyInsightEnhanced
task to grant more insight into resolution rule choices
- Use reflection when getting the event register to avoid an upcoming internal API change from a class -> interface causing
IncompatibleClassChangeError
- Improve performance of alignment by short-circuiting when all dependencies in a configuration have already been aligned either naturally, or via other plugins such as dependency lock
- Fixed an issue that prevented rules from being applied to configurations created after the project was evaluated, causing global dependency locks not to be affected by rules.
- Prevent beforeResolve rules from applying unless afterEvaluate rules have already been applied. Prevents 'already resolved' warnings for alignment configurations
- Support version selectors (dynamic, range, latest.*) for reject rules
- Fix multi-pass alignment where any unexpected resolved version would cause the second pass to be ineffective for all dependencies
- Fix duplicate path separators in root project configuration names
- Improve version selection for multi-pass alignment to ensure that it doesn't affect dependencies that were selected for reasons other than conflict resolution
- No longer applies any rules to configurations with no dependencies, rather than just optimizing align rules
- Improve performance by avoiding alignment where possible:
- Skips configurations with no dependencies
- Skips non-transitive configurations
- Stops alignment after the baseline resolve, if there are no aligned dependencies
- Protect against spring-boot plugin getting us into a stackoverflow situation
- Align rules no longer replace changes made by other rule type (uses useVersion instead of useTarget).
- Make it so we are not eagerly resolving the different configurations. Will only resolve when gradle resolves the configuration.
- BUGFIX: Align rules attempt to align project dependencies, causing them to be resolved as remote artifacts
- Rules files may now be optional, so optionated rules aren't applied without users opting in
- Align rules support regular expressions in the group, includes and excludes
- Empty rules types can be excluded from rules files (required for backwards compatibility with old rules files, but also makes working with them nicer)
- BUGFIX: Handle circularish dependencies B depends on A for compile, A depends on B for testCompile
- BUGFIX: Make sure resolutionRules configuration can be locked by nebula.dependency-lock
- BUGFIX: Allow other changes to configurations.all and associated resolutionStrategy
- Allow opt out of rules for shared company wide rules that apply to your project, e.g. there is a common align rule for a:foo and a:bar and you produce them
- Performance improvement if there are multiple align rules
- BUGFIX for unresolvable dependencies fixed by a resolution rule
- Fix interaction bug with nebula.dependency-recommender (omitted versions causing issues)
- Fix interaction bug with spring-boot plugin (omitted versions causing issues)
- Fix handling of dependency graphs with cycles in them
- Remove dependency on jackson libraries
- Publish nebula.resolution-rules-producer to gradle plugin portal
- Attempt to add nebula.resolution-rules-producer to gradle plugin portal
- Fix publishing to bintray
- Add in align rule
- Re-publish due to initial JCenter sync failure
- Initial Release