At present, generated Gradle build scripts that use Groovy DSL configure
tasks eagerly. This is both suboptimal and actually not aligned with the
generated build scripts that use Kotlin DSL, which configures tasks
lazily.
This commit updates `GroovyDslGradleBuildWriter` to ensure tasks are
configured lazily.
See gh-1292
This commit improves the handling of repositories with Maven.
Previously, the writer wrongly assumed that the default for releases
and snapshots are true and false respectively. However, both defaults
are true which means that snapshots repository are considered for
releases, and releases repositories are considered for snapshots.
MavenRepository has now separate flags for those and the writer makes
sure to only update the `enabled` flag if the chosen value is not
true. This doesn't increase the content for repository definitions
while offering better performance for dependencies resolution.
Closes gh-1226
This commit adds a mapping strategy for Gradle plugins that don't have
a plugin marker artifact. This is necessary to avoid using a buildScript
section to declare the plugin implementation artifact.
Closes gh-1189
Previously, a nested structure of a Maven Plugin configuration can be
only configured for a single parameter. This commit adds a dedicated
method to add a new entry with a nested structure every time it is
called. This effectively allows to configure nested "list" structure
such as listing dependency exclusions.
Closes gh-1165
This commit exposes an additional protected method in ProjectGenerator
that sub-classes can override to alter the list of
`@ProjectGenerationConfiguration`-annotated types that are used to load
candidate contributors.
Closes gh-870
This commit clarifies that Version now handles two different formats,
the original one (flagged V1) and a SemVer compliant format (flagged
V2). Both Version and VersionRange can switch from one format to the
other to produce backward compatible content.
See gh-1092
This commit improves the version parser to handle qualifiers that are
separated by either a `.` or a `-`. This makes the parsing of
`1.2.0-RC1` or `2020.0.0-M1` possible.
Closes gh-1083
This commit makes sure that the diff instance is created immediately,
taking a snapshot of the ProjectDescription before the customizers are
applied on it.
Previously, the instance was created as part of the supplier and
therefore created only once a component was requiring it.
See gh-1023