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 mvn
É possível usar o comando mvn para executar compilações do Maven. Esta seção mostra como configurar mvn para usar um CodeArtifact repositório.
Tópicos
Buscar dependências
Para configurar mvn para buscar dependências de um CodeArtifact repositório, você deve editar o arquivo de configuração do Maven e, opcionalmentesettings.xml, o POM do seu projeto.
Caso contrário, crie e armazene um token de CodeArtifact autenticação em uma variável de ambiente conforme descrito em Passar um token de autenticação usando uma variável de ambiente Para configurar a autenticação no seu CodeArtifact repositório.
-
Em
settings.xml(geralmente encontrado em~/.m2/settings.xml), adicione uma seção<servers>com uma referência à variável de ambienteCODEARTIFACT_AUTH_TOKENpara que o Maven passe o token nas solicitações HTTP.<settings> ... <servers> <server> <id>codeartifact</id> <username>aws</username> <password>${env.CODEARTIFACT_AUTH_TOKEN}</password> </server> </servers> ... </settings> -
Adicione o endpoint de URL do seu CodeArtifact repositório em um
<repository>elemento. Você pode fazer isso nosettings.xmlou arquivo POM do seu projeto.Você pode recuperar o endpoint do seu repositório usando o comando.
get-repository-endpointAWS CLIPor exemplo, com um repositório nomeado
my_repodentro de um domínio chamadomy_domain, o comando é o seguinte:aws codeartifact get-repository-endpoint --domain my_domain --repository my_repo --format mavenO comando
get-repository-endpointretornará o endpoint do repositório:url 'https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/maven/my_repo/'nota
Para usar um endpoint de pilha dupla, use o endpoint
codeartifact..region.on.awsAdicione o endpoint do repositório ao
settings.xmlda seguinte forma.<settings> ... <profiles> <profile> <id>default</id> <repositories> <repository> <id>codeartifact</id> <url>https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/maven/my_repo/</url> </repository> </repositories> </profile> </profiles> <activeProfiles> <activeProfile>default</activeProfile> </activeProfiles> ... </settings>Ou você pode adicionar a
<repositories>seção a um arquivo POM do projeto CodeArtifact para usar somente nesse projeto.<project> ... <repositories> <repository> <id>codeartifact</id> <name>codeartifact</name> <url>https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/maven/my_repo/</url> </repository> </repositories> ... </project>
Importante
Você pode usar qualquer valor no elemento <id>, mas ele deve ser o mesmo nos elementos <server> e <repository>. Isso permite que as credenciais especificadas sejam incluídas nas solicitações para CodeArtifact.
Depois de fazer essas alterações na configuração, você pode criar o projeto.
mvn compile
O Maven registra o URL completo de todas as dependências que ele baixa para o console.
[INFO] ------------------< com.example.example:myapp >------------------- [INFO] Building myapp 1.0 [INFO] --------------------------------[ jar ]--------------------------------- Downloading from codeartifact: https://<domain>.d.codeartifact.us-west-2.amazonaws.com/maven/myrepo/commons-cli/commons-cli/1.4/commons-cli-1.4.pom Downloaded from codeartifact: https://<domain>.d.codeartifact.us-west-2.amazonaws.com/maven/myrepo/commons-cli/commons-cli/1.4/commons-cli-1.4.pom (11 kB at 3.9 kB/s) Downloading from codeartifact: https://<domain>.d.codeartifact.us-west-2.amazonaws.com/maven/myrepo/org/apache/commons/commons-parent/42/commons-parent-42.pom Downloading from codeartifact: https://<domain>.d.codeartifact.us-west-2.amazonaws.com/maven/myrepo/org/apache/commons/commons-parent/42/commons-parent-42.pom Downloaded from codeartifact: https://<domain>.d.codeartifact.us-west-2.amazonaws.com/maven/myrepo/org/apache/commons/commons-parent/42/commons-parent-42.pom (68 kB at 123 kB/s) Downloading from codeartifact: https://<domain>.d.codeartifact.us-west-2.amazonaws.com/maven/myrepo/commons-cli/commons-cli/1.4/commons-cli-1.4.jar Downloaded from codeartifact: https://<domain>.d.codeartifact.us-west-2.amazonaws.com/maven/myrepo/commons-cli/commons-cli/1.4/commons-cli-1.4.jar (54 kB at 134 kB/s)
Publicar artefatos
Para publicar um artefato do Maven em um CodeArtifact repositório, você também deve editar o POM do ~/.m2/settings.xml projeto. mvn
Caso contrário, crie e armazene um token de CodeArtifact autenticação em uma variável de ambiente conforme descrito em Passar um token de autenticação usando uma variável de ambiente Para configurar a autenticação no seu CodeArtifact repositório.
-
Adicione uma seção
<servers>asettings.xmlcom uma referência à variável de ambienteCODEARTIFACT_AUTH_TOKENpara que o Maven passe o token nas solicitações HTTP.<settings> ... <servers> <server> <id>codeartifact</id> <username>aws</username> <password>${env.CODEARTIFACT_AUTH_TOKEN}</password> </server> </servers> ... </settings> -
Adicione uma seção
<distributionManagement>aopom.xmldo seu projeto.<project> ... <distributionManagement> <repository> <id>codeartifact</id> <name>codeartifact</name> <url>https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/maven/my_repo/</url> </repository> </distributionManagement> ... </project>
Depois de fazer essas alterações na configuração, você pode criar o projeto e publicá-lo no repositório específico.
mvn deploy
Use list-package-versions para verificar se o pacote foi publicado com sucesso.
aws codeartifact list-package-versions --domainmy_domain--domain-owner111122223333--repositorymy_repo--formatmaven\ --namespacecom.company.framework--packagemy-package-name
Exemplo de saída:
{ "defaultDisplayVersion": null, "format": "maven", "namespace": "com.company.framework", "package": "my-package-name", "versions": [ { "version": "1.0", "revision": "REVISION-SAMPLE-1-C7F4S5E9B772FC", "status": "Published" } ] }
Publicar artefatos de terceiros
Você pode publicar artefatos Maven de terceiros em um CodeArtifact repositório com. mvn deploy:deploy-file Isso pode ser útil para usuários que desejam publicar artefatos e têm somente arquivos JAR e não têm acesso ao código-fonte do pacote ou aos arquivos POM.
O comando mvn deploy:deploy-file gerará um arquivo POM com base nas informações passadas na linha de comando.
Publicar artefatos Maven de terceiros
Caso contrário, crie e armazene um token de CodeArtifact autenticação em uma variável de ambiente conforme descrito em Passar um token de autenticação usando uma variável de ambiente Para configurar a autenticação no seu CodeArtifact repositório.
-
Crie um arquivo
~/.m2/settings.xmlcom o seguinte conteúdo:<settings> <servers> <server> <id>codeartifact</id> <username>aws</username> <password>${env.CODEARTIFACT_AUTH_TOKEN}</password> </server> </servers> </settings> -
Execute o comando
mvn deploy:deploy-file:mvn deploy:deploy-file -DgroupId=commons-cli \ -DartifactId=commons-cli \ -Dversion=1.4 \ -Dfile=./commons-cli-1.4.jar \ -Dpackaging=jar \ -DrepositoryId=codeartifact \ -Durl=https://my_domain-111122223333.d.codeartifact.region.amazonaws.com/maven/repo-name/nota
O exemplo acima publica
commons-cli 1.4. Modifique os argumentos groupID, artifactID, version e file para publicar um JAR diferente.
Essas instruções são baseadas em exemplos no Guia para implantação de terceiros JARs em repositórios remotos
Restringir downloads de dependências do Maven em um repositório CodeArtifact
Se um pacote não puder ser obtido de um repositório configurado, por padrão, o mvn comando o buscará no Maven Central. Adicione o mirrors elemento para settings.xml fazer com que mvn sempre use seu CodeArtifact repositório.
<settings> ... <mirrors> <mirror> <id>central-mirror</id> <name>CodeArtifact Maven Central mirror</name> <url>https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/maven/my_repo/</url> <mirrorOf>central</mirrorOf> </mirror> </mirrors> ... </settings>
Se você adicionar um elemento mirrors, você também deve ter um elemento pluginRepository em seu settings.xml ou pom.xml. O exemplo a seguir busca dependências de aplicativos e plug-ins do Maven de um repositório. CodeArtifact
<settings> ... <profiles> <profile> <pluginRepositories> <pluginRepository> <id>codeartifact</id> <name>CodeArtifact Plugins</name> <url>https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/maven/my_repo/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </pluginRepository> </pluginRepositories> </profile> </profiles> ... </settings>
O exemplo a seguir busca dependências de aplicativos de um CodeArtifact repositório e busca plug-ins Maven do Maven Central.
<profiles> <profile> <id>default</id> ... <pluginRepositories> <pluginRepository> <id>central-plugins</id> <name>Central Plugins</name> <url>https://repo.maven.apache.org/maven2/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </pluginRepository> </pluginRepositories> .... </profile> </profiles>
Informações do Apache Maven Project
Para obter mais informações sobre o Maven, consulte esses tópicos no site do Apache Maven Project: