Class SharedUtil
- Implementation Note:
- Consumers should make their own
Utilclass and extend this one with it to inherit all static methods.
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final org.gradle.api.Transformer<String, org.gradle.jvm.toolchain.JavaLauncher> Transformer to map a Java launcher to its executable path. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic Set<org.gradle.api.artifacts.Dependency> collect(org.gradle.api.artifacts.ConfigurationContainer configurations, org.gradle.api.tasks.SourceSet sourceSet, boolean transitive, Predicate<? super org.gradle.api.artifacts.Dependency> dependency) Checks if the given dependency is in the given source set.static booleancontains(org.gradle.api.artifacts.ConfigurationContainer configurations, org.gradle.api.tasks.SourceSet sourceSet, boolean transitive, org.gradle.api.artifacts.Dependency dependency) Checks if the given dependency is in the given source set.static booleancontains(org.gradle.api.artifacts.ConfigurationContainer configurations, org.gradle.api.tasks.SourceSet sourceSet, boolean transitive, org.gradle.api.specs.Spec<? super org.gradle.api.artifacts.Dependency> dependency) Checks if the given dependency is in the given source set.static voidensureAfterEvaluate(org.gradle.api.Project project, groovy.lang.Closure<?> closure) Runs the given closure usingProject.afterEvaluate(Action).static voidensureAfterEvaluate(org.gradle.api.Project project, org.gradle.api.Action<? super org.gradle.api.Project> action) Runs the given action usingProject.afterEvaluate(Action).static <P extends org.gradle.api.provider.Property<?>>
groovy.lang.Closure<P> Makes a returning-self closure that finalizes a given property usingfinalizeProperty(Property).static <P extends org.gradle.api.provider.Property<?>>
PfinalizeProperty(P property) Finalizes the given property to prevent any additional changes from being made to it.static <T> voidforEach(org.gradle.api.DomainObjectCollection<T> collection, org.gradle.api.Action<? super T> action) static voidforEachClasspath(org.gradle.api.artifacts.ConfigurationContainer configurations, org.gradle.api.tasks.SourceSet sourceSet, org.gradle.api.Action<? super org.gradle.api.artifacts.Configuration> action) static org.gradle.api.provider.Provider<org.gradle.jvm.toolchain.JavaLauncher> launcherFor(org.gradle.api.Project project, int version) Gets the Java launcher that can compile or run the given version.static org.gradle.api.provider.Provider<org.gradle.jvm.toolchain.JavaLauncher> launcherFor(org.gradle.api.Project project, org.gradle.jvm.toolchain.JavaLanguageVersion version) Gets the Java launcher that can compile or run the given version.static org.gradle.api.provider.Provider<org.gradle.jvm.toolchain.JavaLauncher> launcherForStrictly(org.gradle.api.Project project, int version) Gets the Java launcher for the given version, even if the currently running Java toolchain is higher.static org.gradle.api.provider.Provider<org.gradle.jvm.toolchain.JavaLauncher> launcherForStrictly(org.gradle.api.Project project, org.gradle.jvm.toolchain.JavaLanguageVersion version) Gets the Java launcher for the given version, even if the currently running Java toolchain is higher.static org.gradle.api.provider.Provider<org.gradle.jvm.toolchain.JavaLauncher> launcherForStrictly(org.gradle.jvm.toolchain.JavaToolchainService javaToolchains, int version) Gets the Java launcher for the given version, even if the currently running Java toolchain is higher.static org.gradle.api.provider.Provider<org.gradle.jvm.toolchain.JavaLauncher> launcherForStrictly(org.gradle.jvm.toolchain.JavaToolchainService javaToolchains, org.gradle.jvm.toolchain.JavaLanguageVersion version) Gets the Java launcher for the given version, even if the currently running Java toolchain is higher.static <T extends org.gradle.api.tasks.TaskProvider<?>>
TrunFirst(org.gradle.api.Project project, T task) Ensures that a given task is run first in the task graph for the given project.static <T> voidsetOptional(org.gradle.api.provider.Property<T> to, org.gradle.api.provider.Provider<? extends T> from) Conditionally set the given provider's value to the given property's value if the property is present.static PipedOutputStreamCreates an output stream that logs to the given action.static PipedOutputStreamtoLog(org.gradle.api.logging.Logger logger, org.gradle.api.logging.LogLevel level) Creates an output stream that logs to the given action.static StringtoString(org.gradle.api.artifacts.Dependency dependency) Converts a given dependency to string.static StringtoString(org.gradle.api.artifacts.ModuleVersionSelector module) Converts a given module to string.
-
Field Details
-
LAUNCHER_EXECUTABLE
public static final org.gradle.api.Transformer<String, org.gradle.jvm.toolchain.JavaLauncher> LAUNCHER_EXECUTABLETransformer to map a Java launcher to its executable path. Use to store in properties sinceJavaLaunchercannot be serialized.
-
-
Constructor Details
-
SharedUtil
protected SharedUtil()Empty constructor. This class should only be extended to make referencing these static methods easier.
-
-
Method Details
-
launcherFor
public static org.gradle.api.provider.Provider<org.gradle.jvm.toolchain.JavaLauncher> launcherFor(org.gradle.api.Project project, int version) Gets the Java launcher that can compile or run the given version.
If the currently available Java toolchain is able to compile and run the given version, it will be used instead. The toolchain is first queried from the project's
JavaPluginExtension.getToolchain(). If the toolchain is not set or does not apply thejavaplugin,JavaLanguageVersion.current()will be used instead.- Parameters:
project- The project to get the Java extensions fromversion- The version of Java required- Returns:
- A provider for the Java launcher
-
launcherFor
public static org.gradle.api.provider.Provider<org.gradle.jvm.toolchain.JavaLauncher> launcherFor(org.gradle.api.Project project, org.gradle.jvm.toolchain.JavaLanguageVersion version) Gets the Java launcher that can compile or run the given version.
If the currently available Java toolchain is able to compile and run the given version, it will be used instead. The toolchain is first queried from the project's
JavaPluginExtension.getToolchain(). If the toolchain is not set or does not apply thejavaplugin,JavaLanguageVersion.current()will be used instead.- Parameters:
project- The project to get the Java extensions fromversion- The version of Java required- Returns:
- A provider for the Java launcher
-
launcherForStrictly
public static org.gradle.api.provider.Provider<org.gradle.jvm.toolchain.JavaLauncher> launcherForStrictly(org.gradle.api.Project project, int version) Gets the Java launcher for the given version, even if the currently running Java toolchain is higher.- Parameters:
project- The extension-aware object to get the Java extensions fromversion- The version of Java required- Returns:
- A provider for the Java launcher
-
launcherForStrictly
public static org.gradle.api.provider.Provider<org.gradle.jvm.toolchain.JavaLauncher> launcherForStrictly(org.gradle.api.Project project, org.gradle.jvm.toolchain.JavaLanguageVersion version) Gets the Java launcher for the given version, even if the currently running Java toolchain is higher.- Parameters:
project- The extension-aware object to get the Java extensions fromversion- The version of Java required- Returns:
- A provider for the Java launcher
-
launcherForStrictly
public static org.gradle.api.provider.Provider<org.gradle.jvm.toolchain.JavaLauncher> launcherForStrictly(org.gradle.jvm.toolchain.JavaToolchainService javaToolchains, int version) Gets the Java launcher for the given version, even if the currently running Java toolchain is higher.- Parameters:
javaToolchains- The Java toolchain service to get the Java launcher fromversion- The version of Java required- Returns:
- A provider for the Java launcher
-
launcherForStrictly
public static org.gradle.api.provider.Provider<org.gradle.jvm.toolchain.JavaLauncher> launcherForStrictly(org.gradle.jvm.toolchain.JavaToolchainService javaToolchains, org.gradle.jvm.toolchain.JavaLanguageVersion version) Gets the Java launcher for the given version, even if the currently running Java toolchain is higher.- Parameters:
javaToolchains- The Java toolchain service to get the Java launcher fromversion- The version of Java required- Returns:
- A provider for the Java launcher
-
ensureAfterEvaluate
public static void ensureAfterEvaluate(org.gradle.api.Project project, @DelegatesTo(value=org.gradle.api.Project.class,strategy=1) groovy.lang.Closure<?> closure) Runs the given closure usingProject.afterEvaluate(Action). If the project is already executed, the closure will be called instantly.- Parameters:
project- The project to run the closure onclosure- The closure to execute
-
ensureAfterEvaluate
public static void ensureAfterEvaluate(org.gradle.api.Project project, org.gradle.api.Action<? super org.gradle.api.Project> action) Runs the given action usingProject.afterEvaluate(Action). If the project is already executed, the action will be executed instantly.- Parameters:
project- The project to run the action onaction- The action to execute
-
runFirst
public static <T extends org.gradle.api.tasks.TaskProvider<?>> T runFirst(org.gradle.api.Project project, T task) Ensures that a given task is run first in the task graph for the given project.
This does not break the configuration cache as long as the task is always applied using this.
- Parameters:
project- The projecttask- The task to run first
-
contains
public static boolean contains(org.gradle.api.artifacts.ConfigurationContainer configurations, org.gradle.api.tasks.SourceSet sourceSet, boolean transitive, org.gradle.api.artifacts.Dependency dependency) Checks if the given dependency is in the given source set.- Parameters:
configurations- The configuration container to usesourceSet- The source set to checktransitive- If the source set should be searched transitively (iffalse, for example, this method will returnfalseif the dependency is in themainsource set but not explicitely declared in one of thetestsource set's dependency-scope configurations)dependency- The dependency to find- Returns:
- If the source set contains the dependency
-
contains
public static boolean contains(org.gradle.api.artifacts.ConfigurationContainer configurations, org.gradle.api.tasks.SourceSet sourceSet, boolean transitive, org.gradle.api.specs.Spec<? super org.gradle.api.artifacts.Dependency> dependency) Checks if the given dependency is in the given source set.- Parameters:
configurations- The configuration container to usesourceSet- The source set to checktransitive- If the source set should be searched transitively (iffalse, for example, this method will returnfalseif the dependency is in themainsource set but not explicitely declared in one of thetestsource set's dependency-scope configurations)dependency- The dependency to find- Returns:
- If the source set contains the dependency
-
collect
public static Set<org.gradle.api.artifacts.Dependency> collect(org.gradle.api.artifacts.ConfigurationContainer configurations, org.gradle.api.tasks.SourceSet sourceSet, boolean transitive, Predicate<? super org.gradle.api.artifacts.Dependency> dependency) Checks if the given dependency is in the given source set.- Parameters:
configurations- The configuration container to usesourceSet- The source set to checktransitive- If the source set should be searched transitively (iffalse, for example, this method will returnfalseif the dependency is in themainsource set but not explicitely declared in one of thetestsource set's dependency-scope configurations)dependency- The dependency to find- Returns:
- The set containing the filtered dependencies
-
forEachClasspath
public static void forEachClasspath(org.gradle.api.artifacts.ConfigurationContainer configurations, org.gradle.api.tasks.SourceSet sourceSet, org.gradle.api.Action<? super org.gradle.api.artifacts.Configuration> action) -
forEach
public static <T> void forEach(org.gradle.api.DomainObjectCollection<T> collection, org.gradle.api.Action<? super T> action) -
toLog
public static PipedOutputStream toLog(org.gradle.api.logging.Logger logger, org.gradle.api.logging.LogLevel level) Creates an output stream that logs to the given action.- Parameters:
logger- The logger to log to- Returns:
- The output stream
-
toLog
Creates an output stream that logs to the given action.- Parameters:
logger- The logger to log to- Returns:
- The output stream
-
toString
Converts a given module to string. Use this instead ofObject.toString().- Parameters:
module- The module- Returns:
- The string representation
-
toString
Converts a given dependency to string. Use this instead ofObject.toString().- Parameters:
dependency- The dependency- Returns:
- The string representation
-
finalizeProperty
public static <P extends org.gradle.api.provider.Property<?>> groovy.lang.Closure<P> finalizeProperty()Makes a returning-self closure that finalizes a given property usingfinalizeProperty(Property).This is best used as the method argument for
DefaultGroovyMethods.tap(Object, Closure), which allows for in-lining property creation in Groovy code.- Type Parameters:
P- The type of property to finalize- Returns:
- The returning-self closure for finalizing a property
-
finalizeProperty
@Contract(value="_ -> param1", mutates="param1") public static <P extends org.gradle.api.provider.Property<?>> P finalizeProperty(P property) Finalizes the given property to prevent any additional changes from being made to it.
This is done by simply calling
HasConfigurableValue.disallowChanges()andHasConfigurableValue.finalizeValueOnRead(). These methods do not return the object itself, so this helper method exists to in-line property creation without needing to reference it again just to call these methods.- Type Parameters:
P- The type of property to finalize- Parameters:
property- The property to finalize- Returns:
- The property
-
setOptional
public static <T> void setOptional(org.gradle.api.provider.Property<T> to, org.gradle.api.provider.Provider<? extends T> from) Conditionally set the given provider's value to the given property's value if the property is present.- Type Parameters:
T- The type of property- Parameters:
to- The property to apply the new value tofrom- The provider value to apply
-