Gradle (Kotlin)
Buildkite Package Registries provides registry support for Gradle-based Java packages (using the Maven Publish Plugin), using the Gradle Kotlin DSL. If you're using Gradle's Groovy DSL, refer to the Gradle (Groovy) page.
Once your Java source registry has been created, you can publish/upload packages (generated from your application's build) to this registry by configuring your build.gradle.kts file.
Publish a package
The Publish Instructions tab of your Java source registry includes a Gradle snippet you can use to configure your environment for publishing packages to this registry. To view and copy the required build.gradle.kts configuration:
- Select Package Registries in the global navigation to access the Registries page.
- Select your Java source registry on this page.
- Select the Publish Instructions tab and on the resulting page, in the Using Gradle with
maven-publishplugin section, select Gradle (Kotlin) to expand this section. -
Use the copy icon at the top-right of the code box to copy the Gradle code snippet and paste it into the appropriate area/s of your
build.gradle.ktsfile.These
build.gradle.ktsfile configurations contain the:- Maven coordinates for your package (which you will need to manually configure yourself).
- URL for your specific Java source registry in Buildkite.
- API access token required to publish the package to this source registry.
You can then run the
gradle publishcommand to publish the package to this source registry.
Detailed instructions
You can also configure this file yourself (modifying the snippet as required), by following these detailed instructions.
-
Copy the following Gradle (Kotlin) snippet, paste it into your
build.gradle.ktsfile, and modify accordingly:plugins { `maven-publish` `java-library` } publishing { publications { create<MavenPublication>("maven") { // MODIFY: Define your Maven coordinates of your package groupId = "com.name.domain.my" artifactId = "my-java-package-name" version = "my-java-package-version" from(components["java"]) } } repositories { maven { url = uri("https://packages.buildkite.com/{org.slug}/{registry.slug}/maven2/") authentication { create<HttpHeaderAuthentication>("header") } credentials(HttpHeaderCredentials::class) { name = "Authorization" value = "Bearer registry-write-token" } } } }where:
com.name.domain.myis the domain name of your Java package (in typical right-to-left order).my-java-package-nameis the name of your Java package.my-java-package-versionis the version number of your Java package.
-
{org.slug}can be obtained from the end of your Buildkite URL, after accessing Package Registries or Pipelines in the global navigation of your organization in Buildkite.
-
{registry.slug}is the slug of your Java source registry, which is the kebab-case version of this registry's name, and can be obtained after accessing Package Registries in the global navigation > your Java source registry from the Registries page.
-
registry-write-tokenis your API access token used to publish/upload packages to your Java source registry. Ensure this access token has the Read Packages and Write Packages REST API scopes, which allows this token to publish packages to any source registry your user account has access to within your Buildkite organization.
-
Publish your package:
gradle publish
Access a package's details
A Java package's details can be accessed from its source registry through the Releases (tab) section of your Java source registry page. To do this:
- Select Package Registries in the global navigation to access the Registries page.
- Select your Java source registry on this page.
- On your Java source registry page, select the package to display its details page.
The package's details page provides the following information in the following sections:
- Installation (tab): the installation instructions.
- Contents (tab, where available): a list of directories and files contained within the package.
- Details (tab): a list of checksum values for this package—MD5, SHA1, SHA256, and SHA512.
- About this version: a brief (metadata) description about the package.
-
Details: details about:
- the name of the package (typically the file name excluding any version details and extension).
- the package version.
- the source registry the package is located in.
- the package's visibility (based on its registry's visibility)—whether the package is Private and requires authentication to access, or is publicly accessible.
- the distribution name / version.
- additional optional metadata contained within the package, such as a homepage, licenses, etc.
Pushed: the date when the last package was uploaded to the source registry.
Total files: the total number of files (and directories) within the package.
Dependencies: the number of dependency packages required by this package.
Package size: the storage size (in bytes) of this package.
Downloads: the number of times this package has been downloaded.
Downloading a package
A Java package can be downloaded from the package's details page. To do this:
- Access the package's details.
- Select Download.
Installing a package from a source registry
A Java package can be installed using code snippet details provided on the package's details page. To do this:
- Access the package's details.
- Ensure the Installation (tab) > Gradle (Kotlin) section is displayed.
-
Copy the code snippet, paste this into the
build.gradle.ktsGradle file, and modify the required values accordingly.You can then run
gradle installon this modified script file to install this package.
This code snippet is based on this format:
repositories {
maven {
url = uri("https://packages.buildkite.com/{org.slug}/{registry.slug}/maven2/")
authentication {
create<HttpHeaderAuthentication>("header")
}
credentials(HttpHeaderCredentials::class) {
name = "Authorization"
value = "Bearer registry-read-token"
}
}
}
dependencies {
implementation("com.name.domain.my:my-java-package-name:my-java-package-version")
}
where:
-
{org.slug}can be obtained from the end of your Buildkite URL, after accessing Package Registries or Pipelines in the global navigation of your organization in Buildkite.
-
{registry.slug}is the slug of your registry, which is the kebab-case version of your registry name, and can be obtained after accessing Package Registries in the global navigation > your registry from the Registries page.
-
registry-read-tokenis your API access token or registry token used to download packages from your Java source registry. Ensure this access token has the Read Packages REST API scope, which allows this token to download packages from any registry your user account has access to within your Buildkite organization.Note: Both the
authenticationandcredentialssections are not required for registries that are publicly accessible.
com.name.domain.myis the domain name of your Java package (in typical right-to-left order).my-java-package-nameis the name of your Java package.my-java-package-versionis the version number of your Java package.