# The Java Library Distribution Plugin

✨ | The Java library distribution plugin is currently incubating. Please be aware that the DSL and other configuration may change in later Gradle versions.

The Java library distribution plugin adds support for building a distribution ZIP for a Java library. The distribution contains the JAR file for the library and its dependencies.

## Usage

To use the Java library distribution plugin, include the following in your build script:

Example 1. Using the Java library distribution plugin
build.gradle

    plugins {
        id 'java-library-distribution'
    }

build.gradle.kts

    plugins {
        `java-library-distribution`
    }

To define the name for the distribution you have to set the `baseName` property as shown below:

Example 2. Configure the distribution name
build.gradle

    distributions {
        main {
            baseName = 'my-name'
        }
    }

build.gradle.kts

    distributions {
        main {
            baseName = "my-name"
        }
    }

The plugin builds a distribution for your library. The distribution will package up the runtime dependencies of the library. All files stored in `src/main/dist` will be added to the root of the archive distribution. You can run “`gradle distZip`” to create a ZIP file containing the distribution.

## Tasks

The Java library distribution plugin adds the following tasks to the project.

`distZip` — Zip

  Depends on: `jar`

  Creates a full distribution ZIP archive including runtime libraries.

## Including other resources in the distribution

All of the files from the `src/dist` directory are copied. To include any static files in the distribution, simply arrange them in the `src/dist` directory, or add them to the content of the distribution.

Example 3. Include files in the distribution
build.gradle

    distributions {
        main {
            baseName = 'my-name'
            contents {
                from 'src/dist'
            }
        }
    }

build.gradle.kts

    distributions {
        main {
            baseName = "my-name"
            contents {
                from("src/dist")
            }
        }
    }