Working with the Gradle registry

You can configure Gradle to publish packages to the GitHub Package Registry Gradle registry and to use packages stored on GitHub Package Registry as dependencies in a Java project.

GitHub Package Registry is available with GitHub Free, GitHub Pro, GitHub Free for organizations, GitHub Team, GitHub Enterprise Cloud, GitHub Enterprise Server, and GitHub AE.

Observação: GitHub Package Registry está atualmente em beta para GitHub AE.

Note: When installing or publishing a docker image, GitHub Package Registry does not currently support foreign layers, such as Windows images.

Autenticar-se no GitHub Package Registry

Você precisa de um token de acesso para publicar, instalar e excluir pacotes no GitHub Package Registry.

You can use a personal access token (PAT) to authenticate to GitHub Package Registry or the GitHub API. Ao criar um token de acesso pessoal, você pode atribuir diferentes escopos de token, dependendo da sua necessidade. For more information about packages-related scopes for a PAT, see "About permissions for GitHub Packages."

To authenticate to a GitHub Package Registry registry within a GitHub Actions workflow, you can use:

  • GITHUB_TOKEN to publish packages associated with the workflow repository.
  • a PAT to install packages associated with other private repositories (which GITHUB_TOKEN can't access).

For more information about GITHUB_TOKEN used in GitHub Actions workflows, see "Authentication in a workflow." For more information about using GITHUB_TOKEN with Gradle, see "Publishing Java packages with Gradle."

Efetuando a autenticação com um token de acesso pessoal

Você deve usar um token de acesso pessoal com os escopos apropriados para publicar e instalar pacotes no GitHub Package Registry. Para obter mais informações, consulte "Sobre GitHub Package Registry."

Você pode efetuar a autenticação no GitHub Package Registry com Gradle usando Gradle Groovy ou Kotlin DSL e editando o seu arquivo build.gradle (Gradle Groovy) ou o arquivo build.gradle.kts (Kotlin DSL) para incluir seu token de acesso pessoal. Também é possível configurar o Gradle Groovy e o Kotlin DSL para reconhecer um único pacote ou vários pacotes em um repositório.

Substitua URL REGISTRA- pela URL para o registro Maven da sua empresa, maven.HOSTNAME. Replace HOSTNAME with the host name of a sua empresa.

Substitua NOME DE USUÁRIO pelo seu nome de usuário do GitHub TOKEN pelo seu token de acesso pessoal, REPOSITÓRIO pelo nome do repositório que contém o pacote que você deseja publicar, e PROPRIETÁRIO pelo nome do usuário ou conta de organização no GitHub que é proprietário do repositório. Como não é permitido usar letras maiúsculas, é preciso usar letras minúsculas no nome do proprietário do repositório, mesmo que o nome do usuário ou da organização no GitHub contenha letras maiúsculas.

Observação: GitHub Package Registry suporta versões SNAPSHOT do Apache Maven. To use the GitHub Package Registry repository for downloading SNAPSHOT artifacts, enable SNAPSHOTS in the POM of the consuming project or your ~/.m2/settings.xml file. Por exemplo, consulte "Configuraro Apache Maven para uso com GitHub Package Registry".

Exemplo de uso do Gradle Groovy para um único pacote em um repositório
plugins {
    id("maven-publish")
}
publishing {
    repositories {
        maven {
            name = "GitHubPackages"
            url = uri("https://REGISTRY-URL/OWNER/REPOSITORY")
            credentials {
                username = project.findProperty("gpr.user") ?: System.getenv("USERNAME")
                password = project.findProperty("gpr.key") ?: System.getenv("TOKEN")
            }
        }
    }
    publications {
        gpr(MavenPublication) {
            from(components.java)
        }
    }
}
Exemplo de uso do Gradle Groovy para vários pacotes no mesmo repositório
plugins {
    id("maven-publish") apply false
}
subprojects {
    apply plugin: "maven-publish"
    publishing {
        repositories {
            maven {
                name = "GitHubPackages"
                url = uri("https://REGISTRY-URL/OWNER/REPOSITORY")
                credentials {
                    username = project.findProperty("gpr.user") ?: System.getenv("USERNAME")
                    password = project.findProperty("gpr.key") ?: System.getenv("TOKEN")
                }
            }
        }
        publications {
            gpr(MavenPublication) {
                from(components.java)
            }
        }
    }
}
Exemplo de uso do Kotlin DSL para um único pacote no mesmo repositório
plugins {
    `maven-publish`
}
publishing {
    repositories {
        maven {
            name = "GitHubPackages"
            url = uri("https://REGISTRY-URL/OWNER/REPOSITORY")
            credentials {
                username = project.findProperty("gpr.user") as String? ?: System.getenv("USERNAME")
                password = project.findProperty("gpr.key") as String? ?: System.getenv("TOKEN")
            }
        }
    }
    publications {
        register("gpr") {
            from(components["java"])
        }
    }
}
Exemplo de uso do Kotlin DSL para vários pacotes no mesmo repositório
plugins {
    `maven-publish` apply false
}
subprojects {
    apply(plugin = "maven-publish")
    configure {
        repositories {
            maven {
                name = "GitHubPackages"
                url = uri("https://REGISTRY-URL/OWNER/REPOSITORY")
                credentials {
                    username = project.findProperty("gpr.user") as String? ?: System.getenv("USERNAME")
                    password = project.findProperty("gpr.key") as String? ?: System.getenv("TOKEN")
                }
            }
        }
        publications {
            register("gpr") {
                from(components["java"])
            }
        }
    }
}

Publicar um pacote

Por padrão, o GitHub publica o pacote em um repositório existente com o mesmo nome do pacote. Por exemplo, GitHub publicará um pacote denominado com.example.test no repositório OWNER/test GitHub Package Registry.

Após publicar um pacote, você poderá visualizá-lo no GitHub. Para obter mais informações, consulte "Visualizar pacotes".

  1. Autenticar para GitHub Package Registry. Para obter mais informações, consulte "Authenticating to GitHub Package Registry."

  2. Depois de criar seu pacote, você poderá publicá-lo.

    $ gradle publish

Instalar um pacote

Você pode instalar um pacote adicionando-o como uma dependência ao seu projeto. Para obter mais informações, consulte "Declarar dependências" na documentação do Gradle.

  1. Autenticar para GitHub Package Registry. Para obter mais informações, consulte "Authenticating to GitHub Package Registry."

  2. Adicione as dependências do pacote ao seu arquivo build.gradle (Gradle Groovy) ou ao arquivo build.gradle.kts (arquivo de Kotlin DSL).

    Exemplo do uso do Gradle Groovy:

    dependencies {
        implementation 'com.example:package'
    }

    Exemplo de uso do Kotlin DSL:

    dependencies {
        implementation("com.example:package")
    }
  3. Adicione o plugin do maven ao seu arquivo build.gradle (Gradle Groovy) ou ao arquivo build.gradle.kts (arquivo Kotlin DSL).

    Exemplo do uso do Gradle Groovy:

    plugins {
        id 'maven'
    }

    Exemplo de uso do Kotlin DSL:

    plugins {
        `maven`
    }
  4. Instale o pacote.

    $ gradle install

Leia mais

Esse documento ajudou você?Política de Privacidade

Ajude-nos a tornar esses documentos ótimos!

Todos os documentos do GitHub são de código aberto. Você percebeu que algo que está errado ou não está claro? Envie um pull request.

Faça uma contribuição

Ou, aprenda como contribuir.