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 do seu projeto. POM
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
(normalmente encontrado em~/.m2/settings.xml
), adicione uma<servers>
seção com uma referência à variável deCODEARTIFACT_AUTH_TOKEN
ambiente para que o Maven passe o token nas HTTP solicitações.<settings> ... <servers> <server> <id>codeartifact</id> <username>aws</username> <password>${env.CODEARTIFACT_AUTH_TOKEN}</password> </server> </servers> ... </settings>
-
Adicione o URL endpoint do seu CodeArtifact repositório em um
<repository>
elemento. Você pode fazer isso nosettings.xml
POM arquivo do seu projeto.Você pode recuperar o endpoint do seu repositório usando o comando.
get-repository-endpoint
AWS CLIPor exemplo, com um repositório chamado
my_repo
dentro de um domínio chamadomy_domain
, o comando é o seguinte:aws codeartifact get-repository-endpoint --domain my_domain --repository my_repo --format maven
O comando
get-repository-endpoint
retornará 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.xml
da 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 POM arquivo de 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 todas URL 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 ~/.m2/settings.xml
o projeto. mvn
POM
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
<servers>
seçãosettings.xml
com uma referência à variável deCODEARTIFACT_AUTH_TOKEN
ambiente para que o Maven passe o token nas HTTP solicitações.<settings> ... <servers> <server> <id>codeartifact</id> <username>aws</username> <password>${env.CODEARTIFACT_AUTH_TOKEN}</password> </server> </servers> ... </settings>
-
Adicione uma seção
<distributionManagement>
aopom.xml
do 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 --domain
my_domain
--domain-owner111122223333
--repositorymy_repo
--formatmaven
\ --namespacecom.company.framework
--packagemy-package-name
Exemplo de resultado:
{ "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 só têm JAR arquivos e não têm acesso ao código-fonte ou aos POM arquivos do pacote.
O mvn deploy:deploy-file
comando gerará um POM arquivo 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.xml
com 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 argumentosgroupId, artifactID, version e file para publicar um diferente. JAR
Essas instruções são baseadas em exemplos no Guia para implantação de terceiros JARs em repositórios remotos
Restringir os 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: