com.gradle.develocity.agent.maven.api.scan.BuildScanCaptureSettings Maven / Gradle / Ivy
Show all versions of develocity-maven-extension Show documentation
package com.gradle.develocity.agent.maven.api.scan;
import org.apache.maven.execution.ExecutionEvent;
/**
* Allows configuring what data will be captured as part of the build scan.
*
* @see BuildScanApi#getCapture()
* @since 1.21
*/
public interface BuildScanCaptureSettings {
/**
* Specifies whether to capture information about each file used as an input to a goal execution.
*
* Defaults to {@code true}.
*
* Capturing file fingerprints may increase the size of the build scan data.
* This requires more time to transmit to the server, and more storage space at the server.
* Most builds will not incur a noticeable difference when this feature is enabled.
* Large builds may increase the build scan data by a handful of megabytes.
* For most builds, the increase will be negligible.
*
* If using Develocity with a good connection to the server this capture should stay enabled,
* as it allows comparing goal inputs at a file level when comparing builds.
*
* This property may also be set in develocity.xml or via the {@code gradle.scan.captureGoalInputFiles} system property.
* If this is set to any value other than {@code false}, the capture will be enabled, otherwise the capture will be disabled.
* If the capture is enabled or disabled via system property, calling this method has no effect.
* That is, the system property takes precedence over the value set via this method.
*
* This method cannot be called after the MavenSession has been started (i.e. after the {@link ExecutionEvent.Type#SessionStarted} event has been received).
* Doing so will produce a build time error.
*
* @param capture whether to capture information about each file use as an input to a goal execution
*/
void setFileFingerprints(boolean capture);
/**
* See {@link #setFileFingerprints(boolean)}.
*
* @return whether information about each file used as an input to a goal will be captured
*/
boolean isFileFingerprints();
/**
* Specifies whether to capture build logging output.
*
* Defaults to {@code true}.
*
* This property may also be set in develocity.xml or via the {@code develocity.scan.captureBuildLogging} system property.
* If this is set to any value other than {@code false}, the capture will be enabled, otherwise the capture will be disabled.
* If the capture is enabled or disabled via system property, calling this method has no effect.
* That is, the system property takes precedence over the value set via this method.
*
* This method cannot be called after the MavenSession has been started (i.e. after the {@link ExecutionEvent.Type#SessionStarted} event has been received).
* Doing so will produce a build time error.
*
* @param capture whether to capture build logging output
*/
void setBuildLogging(boolean capture);
/**
* See {@link #setBuildLogging(boolean)}.
*
* @return whether build logging output will be captured
*/
boolean isBuildLogging();
/**
* Specifies whether to capture test logging output.
*
* Defaults to {@code true}.
*
* This property may also be set in develocity.xml or via the {@code develocity.scan.captureTestLogging} system property.
* If this is set to any value other than {@code false}, the capture will be enabled, otherwise the capture will be disabled.
* If the capture is enabled or disabled via system property, calling this method has no effect.
* That is, the system property takes precedence over the value set via this method.
*
* This method cannot be called after the MavenSession has been started (i.e. after the {@link ExecutionEvent.Type#SessionStarted} event has been received).
* Doing so will produce a build time error.
*
* @param capture whether to capture test logging output
*/
void setTestLogging(boolean capture);
/**
* See {@link #setTestLogging(boolean)}.
*
* @return whether test logging output will be captured
*/
boolean isTestLogging();
/**
* Specifies whether to capture information about the resources used by the build.
*
* Defaults to {@code true}.
*
* This property may also be set in develocity.xml or via the {@code develocity.scan.captureResourceUsage} system property.
* If this is set to any value other than {@code false}, the capture will be enabled, otherwise the capture will be disabled.
* If the capture is enabled or disabled via system property, calling this method has no effect.
* That is, the system property takes precedence over the value set via this method.
*
* This method cannot be called after the MavenSession has been started (i.e. after the {@link ExecutionEvent.Type#SessionStarted} event has been received).
* Doing so will produce a build time error.
*
* @param capture whether to capture resource usage
* @since 1.22
*/
void setResourceUsage(boolean capture);
/**
* See {@link #setResourceUsage(boolean)}.
*
* @return whether resource usage information will be captured
* @since 1.22
*/
boolean isResourceUsage();
}