Clone Tools
  • last updated a few seconds ago
Constraints: committers
Constraints: files
Constraints: dates
Some changes to make calculation of paths for various domain objects more memory efficient.

- Added `Path.child()` to more efficiently calculate a child path rather than converting to absolute path and parsing.

- Removed duplicate copy of full path held in `Path` instances.

- Use `Path` to represent paths in various domain objects, rather than converting from String to Path and back.

Don't nag in the methods of `DefaultJavaCompileSpec` as this type is only ever used internally.

Changed `SingleMessageLogger` methods to check whether deprecation logging is enabled before creating the warning method, to avoid generating garbage that is never used.

Reuse task logic for JacocoReport and JacocoCheck

    • -0
    • +43
    • -27
    • +1
    • -0
    • +62
Use JacocoCheck in documentation

Revert change

Reflect use of JacocoCheck task in documentation and sample

Input annotation make sure that requires properties are not null

Extract dedicated task for verifying if coverage metrics are met

Results in better configurability for end user and decouples report generation from coverage verification.

Allow filtered view of configuration artifacts

Using `getIncoming().getFiles()` it is possible to obtain a file

collection that only contains artifacts from components matching

a provided filter.

Update library versions in build init to latest for 3.4

Update version to 3.4

Clean release notes for 3.4

    • -147
    • +3
Use constant for task paths

Add missing word

Reuse version number across all multi-version tests

Move worker processes tests back in :core

Follow up on #943

Worker daemons are in :workers, but worker processes could not be

moved there because of dependencies to :core.

  1. … 27 more files in changeset.
Add support for publishing libraries using the `maven-publish` plugin

This commit adds support for API dependencies in the generated pom file when using the `maven-publish` plugin.

It refactors the `Usage` class to make it public, and extensible by users. Then the legacy internal `Usage` class,

which was only used by the publishing plugin, has been updated to use `Usage` as a member, instead of being directly

the usage. This allows us to map configurations to usages more precisely.

- The `compile` scope of the generated pom file consists of the `api` dependencies.

- The `runtime` scope of the generated pom file consists of the old `runtime` dependencies *and* `runtimeElements` dependencies

With this setup, the new publishing plugin is now closer to the reality than the old Maven publishing plugin.

  1. … 9 more files in changeset.
Add multi-version coverage for check support

Prevent periodic memory check to stop if it fails once

Remove spaces

Do not make `api` extends from `compile`

It doesn't have to, and it will make publishing with the new Maven plugin more consistent: `compile` dependencies

are then considered `implementation` dependencies.

Verify proper behavior of Ant task for unknown values

Document default value for property

Apply input/output annotations

Add support for publishing Java libraries with Maven

This commit makes sure that Java projects and Java libraries can be published using the `maven` plugin. As the project is built with Gradle,

we only need to add additional mappings for the `implementation`, `api` and `testImplementation` configurations, because the other configurations

only make sense when building, not consuming.

Those are mapped to the following Maven scopes:

- `api` is mapped to `compile`

- `implementation` is mapped to `runtime`

- `testImplementation` is mapped to `test`

The `compileOnly` and `runtimeOnly` dependency buckets are only used from within a project, so should not appear in the generated pom file.

Convert `MavenPluginTest` to Spock

Normalise file separators when comparing text file content

Quote file separator when used regex

Use first path segment instead of hash code for unique file names