This repository is maintained by the Gradle Enterprise Solutions team, as one of several publicly available repositories:
- Gradle Enterprise Build Configuration Samples
- Gradle Enterprise Build Optimization Experiments
- Gradle Enterprise Build Validation Scripts
- Gradle Enterprise Open Source Projects
- Common Custom User Data Maven Extension (this repository)
- Common Custom User Data Gradle Plugin
- Android Cache Fix Gradle Plugin
The Common Custom User Data Maven extension for Gradle Enterprise enhances published build scans by adding a set of tags, links and custom values that have proven to be useful for many projects building with Gradle Enterprise.
You can leverage this extension for your project in one of two ways:
- Apply the published extension directly in your
.mvn/extensions.xml
and immediately benefit from enhanced build scans - Copy this repository and develop a customized version of the extension to standardize Gradle Enterprise usage across multiple projects
The Common Custom User Data Maven extension is available in Maven Central. This extension requires the Gradle Enterprise Maven extension to also be applied in your build in order to have an effect.
In order for the Common Custom User Data Maven extension to become active, you need to register it in the .mvn/extensions.xml
file in your root project. The extensions.xml
file
is the same file where you have already declared the Gradle Enterprise Maven extension.
See here for an example.
This table details the version compatibility of the Common Custom User Data Maven extension with the Gradle Enterprise Maven extension.
Common Custom User Data Maven extension versions | Gradle Enterprise Maven extension versions |
---|---|
1.8+ |
1.11+ |
1.7 - 1.7.3 |
1.10.1+ |
1.3 - 1.6 |
1.6.5+ |
1.0 - 1.2 |
1.0+ |
The additional tags, links and custom values captured by this extension include:
- A tag representing the operating system
- A tag representing how the build was invoked, be that from your IDE (IDEA, Eclipse) or from the command-line
- A tag representing builds run on CI, together with a set of tags, links and custom values specific to the CI server running the build
- For Git repositories, information on the commit id, branch name, status, and whether the checkout is dirty or not
See CustomBuildScanEnhancements.java for details on what data is captured and under which conditions.
You can apply additional configuration beyond what is contributed by the Common Custom User Data Maven extension by default. The additional configuration happens in a specific Groovy script. This is a good intermediate step before creating your own extension.
The Common Custom User Data Maven extension checks for a .mvn/gradle-enterprise-custom-user-data.groovy
Groovy script in your root project. If the file exists, it evaluates
the script with the following bindings:
gradleEnterprise
(type: GradleEnterpriseApi): configure Gradle EnterprisebuildScan
(type: BuildScanApi): configure build scan publishing and enhance build scansbuildCache
(type: BuildCacheApi): configure build cachelog
(type:Logger
): write to the build logproject
(type:MavenProject
): the top-level Maven projectsession
(type:MavenSession
): the Maven session
See here for an example.
For more flexibility, we recommend creating a copy of this repository so that you may develop a customized version of the extension and publish it internally for your projects to consume.
This approach has a number of benefits:
- Tailor the build scan enhancements to exactly the set of tags, links and custom values you require
- Standardize the configuration for connecting to Gradle Enterprise and the remote build cache in your organization, removing the need for each project to specify this configuration
If your customized extension provides all required Gradle Enterprise configuration, then a consumer project will get all the benefits of Gradle Enterprise simply by applying the extension. The project sources provide a good template to get started with your own extension.
Refer to the Javadoc for more details on the key types available for use.
Refer to the release history to see detailed changes on the versions.
Visit our website to learn more about Gradle Enterprise.
The Gradle Enterprise Common Custom User Data Maven extension is open-source software released under the Apache 2.0 License.