👋 We've unified all of GitHub's product documentation in one place! Check out the content for REST API, GraphQL API, and Developers. Learn more on the GitHub blog.


Publicamos atualizações frequentes em nossa documentação, e a tradução desta página ainda pode estar em andamento. Para obter as informações mais recentes, acesse a documentação em inglês. Se houver problemas com a tradução desta página, entre em contato conosco.

Publicar pacotes Java com Gradle

Você pode usar o Gradle para publicar pacotes Java para um registro como parte do seu fluxo de trabalho de integração contínua (CI).

GitHub Actions está disponível com GitHub Free, GitHub Pro, GitHub Free para organizações, GitHub Team, GitHub Enterprise Cloud e GitHub One. O GitHub Actions não está disponível para repositórios privados de contas que utilizam planos antigos por-repositório. Para obter mais informações, consulte os "produtos do GitHub".

Neste artigo

Você conseguiu encontrar o que estava procurando?

Introdução

This guide shows you how to create a workflow that publishes Java packages to GitHub Package Registry and the Maven Central Repository. With a single workflow, you can publish packages to a single repository or to multiple repositories.

Pré-requisitos

Recomendamos que você tenha um entendimento básico dos arquivos de fluxo de trabalho e das opções de configuração. Para obter mais informações, consulte "Configurar fluxo de trabalho."

Para obter mais informações sobre a criação de um fluxo de trabalho de CI para seu projeto Java com Gradle, consulte "Criando e testando o Java com Gradle"

Você também pode achar útil ter um entendimento básico do seguinte:

Sobre a configuração do pacote

Os campos groupId e artefactId na seção MavenPublication do arquivo build.gradle criam um identificador exclusivo para o seu pacote que os registros usam para vinculá-lo a um registro. Isto é semelhante aos campos groupId e artifactId do arquivo Maven pom.xml. Para obter mais informações, consulte o "Plugin de publicação do Maven" na documentação do Gradle.

O arquivo build.gradle também contém a configuração para os repositórios de gerenciamento de distribuição nos quais o Gradle publicará pacotes. Cada repositório deve ter um nome, uma URL de implementação e e credenciais para autenticação.

Publicar pacotes no Repositório Central do Maven

Cada vez que você criar uma nova versão, você poderá acionar um fluxo de trabalho para publicar o seu pacote. O fluxo de trabalho no exemplo abaixo é executado quando o evento versão é acionado com o tipo criado. O fluxo de trabalho publica o pacote no Repositório Central Maven se o teste de CI for aprovado. Para obter mais informações sobre o evento da versão, consulte "Eventos que acionam fluxos de trabalho".

É possível definir um novo repositório do Maven no bloco de publicação do seu arquivo build.gradle que aponta para o repositório de pacotes. Por exemplo, se você estava fazendo uma implementaão no Central Repositório do Maven por meio do projeto de hospedagem OSSRH, seu build.gradle poderá especificar um repositório com o nome "OSSRH".

publicando {
  ...

  repositórios {
    maven {
      nome = "OSSRH"
      url = "https://oss.sonatype.org/service/local/staging/deploy/maven2/"
      credenciais= {
        nome de usuário= System.getenv("MAVEN_USERNAME")
        senha = System.getenv("MAVEN_PASSWORD")
      }
    }
  }
}

Com essa configuração, é possível criar um fluxo de trabalho que publica seu pacote no Repositório Central do Maven ao executar o comando publicação do gradle. Você também deverá fornecer variáveis de ambiente que contenham o nome de usuário e senha para fazer a autenticação no repositório.

Na etapa de implementação, você deverá definir variáveis de ambiente para o nome de usuário e senha ou token usado para fazer a autenticação no repositório do Maven. Para obter mais informações, consulte "Criando e usando segredos encriptados".

nome: Publicar pacote no Repositório Central do Maven
em:
  versão:
    tipos: [created]
trabalhos:
  publicar:
    runs-on: ubuntu-latest
    etapas:
      - usa: actions/checkout@v2
      - nome: Configurar Java
        usa: actions/setup-java@v1
        com:
          java-version: 1.8
      - nome: Publicar pacote
        executar: gradle publish
        env:
          MAVEN_USERNAME: ${{ secrets.OSSRH_USERNAME }}
          MAVEN_PASSWORD: ${{ secrets.OSSRH_TOKEN }}

This workflow performs the following steps:

  1. Checks out a copy of project's repository.

  2. Sets up the Java JDK.

  3. Executa o comando publicação do gradle para fazer a publicação no repositório do Maven OSSRH. A variável de ambiente MAVEN_USERNAME será definida com o conteúdo do seu segredo OSSRH_USERNAME, e a variável de ambiente MAVEN_PASSWORD será definida com o conteúdo do seu segredo OSSRH_TOKEN.

    Para obter mais informações sobre o uso de segredos no seu fluxo de trabalho, consulte "Criando e usando segredos encriptados".

Publicar pacotes em GitHub Package Registry

Cada vez que você criar uma nova versão, você poderá acionar um fluxo de trabalho para publicar o seu pacote. O fluxo de trabalho no exemplo abaixo é executado quando o evento versão é acionado com o tipo criado. O fluxo de trabalho publica o pacote em GitHub Package Registry se o teste de CI for aprovado. Para obter mais informações sobre o evento da versão, consulte "Eventos que acionam fluxos de trabalho".

Você pode definir um novo repositório do Maven no bloco de publicação do build.gradle que aponta para GitHub Package Registry. Nessa configuração do repositório, também é possível aproveitar as variáveis de ambiente definidas na execução do fluxo de trabalho de CI. Você pode usar a variável de ambiente GITHUB_ACTOR como um nome de usuário e você pode definir a variável de ambiente GITHUB_TOKEN com seu segredo GITHUB_TOKEN.

O GITHUB_TOKEN existe no repositório por padrão e tem permissões de leitura e gravação para pacotes no repositório em que o fluxo de trabalho é executado. Para obter mais informações, consulte "Autenticação com o GITHUB_TOKEN".

Por exemplo, se sua organização é denominado "octocat" e seu repositório é denominado de "hello-world", a configuração do GitHub Package Registry no build.gradle será parecida ao exemplo abaixo.

publicando {
  ...

  repositórios {
    maven {
      nome= "GitHubPackages"
      url = "https://maven.pkg.github.com/octocat/hello-world"
      credenciais = {
        nome de usuário = System.getenv("GITHUB_ACTOR")
        senha = System.getenv("GITHUB_TOKEN")
      }
    }
  }
}

Com essa configuração, é possível criar um fluxo de trabalho que publica seu pacote no Repositório Central do Maven ao executar o comando publicação do gradle.

nome: Publicar pacote nos pacotes do GitHub
em:
  versão:
    tipos: [created]
trabalhos:
  publicar:
    runs-on: ubuntu-latest
    etapas:
      - usa: actions/checkout@v2
      - usa: actions/setup-java@v1
        com:
          java-version: 1.8
      - nome: Publicar pacote
        executar: publicação do gradle
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

This workflow performs the following steps:

  1. Checks out a copy of project's repository.

  2. Sets up the Java JDK.

  3. Executa o comando publicação do gradle para publicar no GitHub Package Registry. A variável de ambiente GITHUB_TOKEN será definida com o conteúdo do segredo GITHUB_TOKEN.

    Para obter mais informações sobre o uso de segredos no seu fluxo de trabalho, consulte "Criando e usando segredos encriptados".

Publicar imagens no Repositório Central do Maven e em GitHub Package Registry

Você pode publicar seus pacotes no Repositório Central Maven e em GitHub Package Registry, configurando cada um no seu arquivo build.gradle.

Certifique-se de que seu arquivo build.gradle inclua um repositório para seu repositório GitHub e seu provedor do Repositório Central do Maven.

Por exemplo, se fizer a implementação no Repositório Central por meio do projecto de hospedagem OSSRH, é possível que você deseje especificá-lo em um repositório de gerenciamento de distribuição com o nome definido como OSSRH. Se você fizer a implementação em GitHub Package Registry, é possível que você deseje especificá-lo em um repositório de gerenciamento de distribuição com o nome `definido comoGitHubPackages`.

Se sua organização for denominada "octocat" e seu repositório for denominado "hello-world", a configuração de GitHub Package Registry em build.gradle será parecida ao exemplo abaixo.

publishing {
  ...

  repositórios {
    maven {
      nome = "OSSRH"
      url = "https://oss.sonatype.org/service/local/staging/deploy/maven2/"
      credenciais = {
        nome de usuário = System.getenv("MAVEN_USERNAME")
        senha = System.getenv("MAVEN_PASSWORD")
      }
    }
    maven {
      name = "GitHubPackages"
      url = "https://maven.pkg.github.com/octocat/hello-world"
      credenciais = {
        nome de usuário = System.getenv("GITHUB_ACTOR")
        senha = System.getenv("GITHUB_TOKEN")
      }
    }
  }
}

Com esta configuração, você pode criar um fluxo de trabalho que publica seu pacote no Repositório Central do Maven e em GitHub Package Registry, executando o comando publicação do gradle.

nome: Publicar pacote no Repositório Central do Maven e nos Pacotes do GitHub
em:
  versão:
    tipos: [created]
trabalhos:
  publicar:
    runs-on: ubuntu-latest
    etapas:
      - usa: actions/checkout@v2
      - nome: Configura o Java
        usa: actions/setup-java@v1
        com:
          java-version: 1.8
      - nome: Publica no Repositório Central do Maven
        executa: publicação do gradle
        env:
          MAVEN_USERNAME: ${{ secrets.OSSRH_USERNAME }}
          MAVEN_PASSWORD: ${{ secrets.OSSRH_TOKEN }}
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

This workflow performs the following steps:

  1. Checks out a copy of project's repository.

  2. Sets up the Java JDK.

  3. Executa o comando publicação do gradle para publicar no repositório do Maven OSSRH e em GitHub Package Registry. A variável de ambiente MAVEN_USERNAME será definida com o conteúdo do seu segredo OSSRH_USERNAME, e a variável de ambiente MAVEN_PASSWORD será definida com o conteúdo do seu segredo OSSRH_TOKEN. A variável de ambiente GITHUB_TOKEN será definida com o conteúdo do segredo GITHUB_TOKEN.

    Para obter mais informações sobre o uso de segredos no seu fluxo de trabalho, consulte "Criando e usando segredos encriptados".

Você conseguiu encontrar o que estava procurando?

Pergunte a uma pessoa

Não consegue encontrar o que procura?

Entrar em contato