Use CodeArtifact com o Gradle - CodeArtifact

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Use CodeArtifact com o Gradle

Depois de ter o token de CodeArtifact autenticação em uma variável de ambiente, conforme descrito em Passe um token de autenticação usando uma variável de ambiente, siga estas instruções para consumir pacotes Maven e publicar novos pacotes em um repositório. CodeArtifact

Buscar dependências

Para buscar dependências CodeArtifact em uma compilação do Gradle, use o procedimento a seguir.

Para buscar dependências CodeArtifact em uma compilação do Gradle
  1. Caso contrário, crie e armazene um token de CodeArtifact autenticação em uma variável de ambiente seguindo o procedimento emPassar um token de autenticação usando uma variável de ambiente.

  2. Adicione uma seção maven à seção repositories no arquivo build.gradle do projeto.

    maven { url 'https://my_domain-111122223333.d.codeartifact.region.amazonaws.com/maven/my_repo/' credentials { username "aws" password System.env.CODEARTIFACT_AUTH_TOKEN } }

    O url exemplo anterior é o endpoint do seu CodeArtifact repositório. O Gradle usa o endpoint para se conectar ao repositório. No exemplo, my_domain é o nome do seu domínio; 111122223333, o ID do proprietário do domínio e my_repo, o nome do seu repositório. Você pode recuperar o endpoint de um repositório usando o comando. get-repository-endpoint AWS CLI

    Por exemplo, com um repositório chamado my_repo dentro de um domínio chamado my_domain, o comando é o seguinte:

    aws codeartifact get-repository-endpoint --domain my_domain --domain-owner 111122223333 --repository my_repo --format maven

    O comando get-repository-endpoint retornará o endpoint do repositório:

    url 'https://my_domain-111122223333.d.codeartifact.region.amazonaws.com/maven/my_repo/'

    O credentials objeto no exemplo anterior inclui o token de CodeArtifact autenticação que você criou na Etapa 1 que o Gradle usa para se autenticar. CodeArtifact

    nota

    Para usar um endpoint de pilha dupla, use o endpoint. codeartifact.region.on.aws

  3. (Opcional) - Para usar o CodeArtifact repositório como a única fonte para as dependências do seu projeto, remova todas as outras seções derepositories. build.gradle Se você tiver mais de um repositório, o Gradle pesquisará dependências em cada repositório, na ordem em que estão listadas.

  4. Depois de configurar o repositório, você pode adicionar dependências do projeto à seção dependencies com a sintaxe padrão do Gradle.

    dependencies { implementation 'com.google.guava:guava:27.1-jre' implementation 'commons-cli:commons-cli:1.4' testImplementation 'org.testng:testng:6.14.3' }

Buscar plug-ins

Por padrão, o Gradle resolverá plug-ins do Portal de plug-ins do Gradle público. Para extrair plug-ins de um CodeArtifact repositório, use o procedimento a seguir.

Para extrair plug-ins de um CodeArtifact repositório
  1. Caso contrário, crie e armazene um token de CodeArtifact autenticação em uma variável de ambiente seguindo o procedimento emPassar um token de autenticação usando uma variável de ambiente.

  2. Adicione um bloco pluginManagement ao seu arquivo settings.gradle. O bloco pluginManagement deve aparecer antes de qualquer outra declaração em settings.gradle; consulte o seguinte trecho:

    pluginManagement { repositories { maven { name 'my_repo' url 'https://my_domain-111122223333.d.codeartifact.region.amazonaws.com/maven/my_repo/' credentials { username 'aws' password System.env.CODEARTIFACT_AUTH_TOKEN } } } }

Isso garantirá que o Gradle resolva plug-ins do repositório especificado. O repositório deve ter um repositório upstream com uma conexão externa com o Portal de plug-ins do Gradle (por exemplo, gradle-plugins-store) para que os plug-ins do Gradle normalmente exigidos estejam disponíveis para a compilação. Para obter mais informações, consulte a documentação do Gradle.

Publicar artefatos

Esta seção descreve como publicar uma biblioteca Java criada com o Gradle em um CodeArtifact repositório.

Primeiro, adicione o plug-in maven-publish à seção plugins do arquivo build.gradle do projeto.

plugins { id 'java-library' id 'maven-publish' }

Em seguida, adicione uma seção publishing ao arquivo build.gradle do projeto.

publishing { publications { mavenJava(MavenPublication) { groupId = 'group-id' artifactId = 'artifact-id' version = 'version' from components.java } } repositories { maven { url 'https://my_domain-111122223333.d.codeartifact.region.amazonaws.com/maven/my_repo/' credentials { username "aws" password System.env.CODEARTIFACT_AUTH_TOKEN } } } }

O maven-publish plug-in gera um POM arquivo com base no groupIdartifactId, e version especificado na publishing seção.

Depois que essas alterações em build.gradle forem concluídas, execute o comando a seguir para criar o projeto e carregá-lo no repositório.

./gradlew publish

Use list-package-versions para verificar se o pacote foi publicado com sucesso.

aws codeartifact list-package-versions --domain my_domain --domain-owner 111122223333 --repository my_repo --format maven\ --namespace com.company.framework --package my-package-name

Exemplo de resultado:

{ "format": "maven", "namespace": "com.company.framework", "package": "example", "versions": [ { "version": "1.0", "revision": "REVISION-SAMPLE-1-C7F4S5E9B772FC", "status": "Published" } ] }

Para obter mais informações, consulte os tópicos a seguir no site do Gradle:

Execute uma compilação do Gradle no IntelliJ IDEA

Você pode executar uma compilação do Gradle no IDEA IntelliJ que extrai dependências de. CodeArtifact Para se autenticar CodeArtifact, você deve fornecer ao Gradle um token de CodeArtifact autorização. Há três métodos para fornecer um token de autorização.

  • Método 1: armazenar o token de autorização em gradle.properties. Use esse método se você conseguir fazer a substituição ou adição ao conteúdo do arquivo gradle.properties.

  • Método 2: armazenar o token de autorização em um arquivo separado. Use esse método se você não quiser modificar o arquivo gradle.properties.

  • Método 3: gerar um novo token de autorização para cada execução usando aws como um script em linha no build.gradle. Use esse método se quiser que o script do Gradle busque um novo token a cada execução. O token não será armazenado no sistema de arquivos.

Token stored in gradle.properties
Método 1: armazenar o token de autorização em gradle.properties
nota

O exemplo mostra o arquivo gradle.properties localizado em GRADLE_USER_HOME.

  1. Atualize o arquivo build.gradle com o seguinte trecho:

    repositories { maven { url 'https://my_domain-111122223333.d.codeartifact.region.amazonaws.com/maven/my_repo/' credentials { username "aws" password "$codeartifactToken" } } }
  2. Para obter plug-ins CodeArtifact, adicione um pluginManagement bloco ao seu settings.gradle arquivo. O bloco pluginManagement deve aparecer antes de qualquer outra declaração em settings.gradle.

    pluginManagement { repositories { maven { name 'my_repo' url 'https://my_domain-111122223333.codeartifact.region.amazonaws.com/maven/my_repo/' credentials { username 'aws' password "$codeartifactToken" } } } }
  3. Obtenha um token de CodeArtifact autenticação:

    export CODEARTIFACT_AUTH_TOKEN=`aws codeartifact get-authorization-token --domain my_domain --domain-owner 111122223333 --query authorizationToken --output text --profile profile-name`
  4. Grave o token de autorização no arquivo gradle.properties:

    echo "codeartifactToken=$CODEARTIFACT_AUTH_TOKEN" > ~/.gradle/gradle.properties
Token stored in separate file
Método 2: armazenar o token de autorização em um arquivo separado
  1. Atualize o arquivo build.gradle com o seguinte trecho:

    def props = new Properties() file("file").withInputStream { props.load(it) } repositories { maven { url 'https://my_domain-111122223333.d.codeartifact.region.amazonaws.com/maven/my_repo/' credentials { username "aws" password props.getProperty("codeartifactToken") } } }
  2. Para obter plug-ins CodeArtifact, adicione um pluginManagement bloco ao seu settings.gradle arquivo. O bloco pluginManagement deve aparecer antes de qualquer outra declaração em settings.gradle.

    pluginManagement { def props = new Properties() file("file").withInputStream { props.load(it) } repositories { maven { name 'my_repo' url 'https://my_domain-111122223333.codeartifact.region.amazonaws.com/maven/my_repo/' credentials { username 'aws' password props.getProperty("codeartifactToken") } } } }
  3. Obtenha um token de CodeArtifact autenticação:

    export CODEARTIFACT_AUTH_TOKEN=`aws codeartifact get-authorization-token --domain my_domain --domain-owner 111122223333 --query authorizationToken --output text --profile profile-name`
  4. Grave o token de autorização no arquivo que foi especificado em seu arquivo build.gradle:

    echo "codeartifactToken=$CODEARTIFACT_AUTH_TOKEN" > file
Token generated for each run in build.gradle
Método 3: gerar um novo token de autenticação para cada execução usando aws como um script em linha no build.gradle
  1. Atualize o arquivo build.gradle com o seguinte trecho:

    def codeartifactToken = "aws codeartifact get-authorization-token --domain my_domain --domain-owner 111122223333 --query authorizationToken --output text --profile profile-name".execute().text repositories { maven { url 'https://my_domain-111122223333.d.codeartifact.region.amazonaws.com/maven/my_repo/' credentials { username "aws" password codeartifactToken } } }
  2. Para obter plug-ins CodeArtifact, adicione um pluginManagement bloco ao seu settings.gradle arquivo. O bloco pluginManagement deve aparecer antes de qualquer outra declaração em settings.gradle.

    pluginManagement { def codeartifactToken = "aws codeartifact get-authorization-token --domain my_domain --domain-owner 111122223333 --query authorizationToken --output text --profile profile-name".execute().text repositories { maven { name 'my_repo' url 'https://my_domain-111122223333.codeartifact.region.amazonaws.com/maven/my_repo/' credentials { username 'aws' password codeartifactToken } } } }