Interface Tool

All Superinterfaces:
Named, Serializable
All Known Subinterfaces:
Tool.Resolved

public sealed interface Tool extends 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

    Named.Namer
  • Method Summary

    Modifier and Type
    Method
    Description
    int
    The Java version this tool was built with.
    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 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