Interface Tool

All Superinterfaces:
org.gradle.api.Named, Serializable
All Known Subinterfaces:
Tool.Resolved

public sealed interface Tool extends org.gradle.api.Named, Serializable permits Tool.Resolved (not exhaustive)
Tools are definitions of Java libraries (may or may not be executable) that are managed by Gradle using a ValueSource. This means that while the downloading and local caching of this file are done in house, the Gradle-specific caching and file tracking are done by Gradle. This enables the usage of downloading external files quickly without breaking caches.
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Interface
    Description
    static interface 
    A definition of how a tool should be resolved and used by the plugin.
    static interface 
    A resolved tool that has a classpath that can be readily used.

    Nested classes/interfaces inherited from interface org.gradle.api.Named

    org.gradle.api.Named.Namer
  • Method Summary

    Modifier and Type
    Method
    Description
    int
    The Java version this tool was built with.
    @Nullable String
    The main class to use when executing this tool.
    The name for this tool.
    The version of this tool.
    default boolean
    If this tool has a strictly defined main class.
    static Tool
    of(String name, String version, String downloadUrl, int javaVersion)
    Creates a new tool with the given information.
    static Tool
    of(String name, String version, String downloadUrl, int javaVersion, String mainClass)
    Creates a new tool with the given information.
  • Method Details

    • of

      static Tool of(String name, String version, String downloadUrl, int javaVersion, String mainClass)
      Creates a new tool with the given information.
      Parameters:
      name - The name for this tool (will be used in the file name)
      version - The version for this tool (will be used in the file name)
      downloadUrl - The download URL for this tool
      javaVersion - The Java version this tool was built with, or should run on
      mainClass - The main class to use when executing this tool
      Returns:
      The tool
    • of

      static Tool of(String name, String version, String downloadUrl, int javaVersion)
      Creates a new tool with the given information.
      Parameters:
      name - The name for this tool (will be used in the file name)
      version - The version for this tool (will be used in the file name)
      downloadUrl - The download URL for this tool
      javaVersion - The Java version this tool was built with, or should run on
      Returns:
      The tool
    • getName

      String getName()
      The name for this tool. Primarily used by ToolExecBase to create a default tool directory.
      Specified by:
      getName in interface org.gradle.api.Named
      Returns:
      The name of this tool
    • getVersion

      String getVersion()
      The version of this tool.
      Returns:
      The version of this tool
    • getJavaVersion

      int getJavaVersion()
      The Java version this tool was built with. Primarily used by ToolExecBase to determine the JavaLauncher.
      Returns:
      The Java version
    • getMainClass

      @Nullable @Nullable String getMainClass()
      The main class to use when executing this tool. Can be null, but does not necessarily mean that the tool is not executable.
      Returns:
      The main class, or null if unspecified
    • hasMainClass

      default boolean hasMainClass()
      If this tool has a strictly defined main class. Can be false, but does not necessarily mean that this tools is not executable.
      Returns:
      If this tool has a main class