Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Usare CodeArtifact con mvn
Si usa il mvn
comando per eseguire le build di Maven. Questa sezione mostra come configurare l'uso di un mvn
repository. CodeArtifact
Argomenti
Recupera le dipendenze
mvn
Per configurare il recupero delle dipendenze da un CodeArtifact repository, devi modificare il file di configurazione di Maven e, facoltativamentesettings.xml
, quello del tuo progetto. POM
Se non l'hai fatto, crea e archivia un token di CodeArtifact autenticazione in una variabile di ambiente come descritto in Passa un token di autenticazione utilizzando una variabile di ambiente per configurare l'autenticazione nel tuo repository. CodeArtifact
-
In
settings.xml
(in genere si trova in~/.m2/settings.xml
), aggiungi una<servers>
sezione con un riferimento alla variabile diCODEARTIFACT_AUTH_TOKEN
ambiente in modo che Maven passi il token nelle richieste. HTTP<settings> ... <servers> <server> <id>codeartifact</id> <username>aws</username> <password>${env.CODEARTIFACT_AUTH_TOKEN}</password> </server> </servers> ... </settings>
-
Aggiungi l'URLendpoint per il tuo CodeArtifact repository in un elemento.
<repository>
Puoi farlo nel filesettings.xml
o nel file del POM tuo progetto.Puoi recuperare l'endpoint del tuo repository usando il comando.
get-repository-endpoint
AWS CLIAd esempio, con un repository denominato
my_repo
all'interno di un dominio denominatomy_domain
, il comando è il seguente:aws codeartifact get-repository-endpoint --domain my_domain --repository my_repo --format maven
Il
get-repository-endpoint
comando restituirà l'endpoint del repository:url 'https://
my_domain
-111122223333
.d.codeartifact.us-west-2
.amazonaws.com/maven/my_repo
/'Nota
Per utilizzare un endpoint dualstack, usa l'endpoint.
codeartifact.
region
.on.awsAggiungi l'endpoint del repository a come segue.
settings.xml
<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>In alternativa, è possibile aggiungere la
<repositories>
sezione a un POM file di progetto da utilizzare solo CodeArtifact per quel progetto.<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
È possibile utilizzare qualsiasi valore nell'<id>
elemento, ma deve essere lo stesso in entrambi <server>
gli <repository>
elementi. Ciò consente di includere le credenziali specificate nelle richieste di CodeArtifact.
Dopo aver apportato queste modifiche alla configurazione, puoi creare il progetto.
mvn compile
Maven registra tutte le URL dipendenze scaricate nella 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)
Pubblica artefatti
Per pubblicare un artefatto Maven in un CodeArtifact repository, devi anche modificare e progettare. mvn
~/.m2/settings.xml
POM
Se non l'hai fatto, crea e archivia un token di CodeArtifact autenticazione in una variabile di ambiente come descritto in Passa un token di autenticazione utilizzando una variabile di ambiente Per configurare l'autenticazione nel tuo repository. CodeArtifact
-
Aggiungi una
<servers>
sezione asettings.xml
con un riferimento alla variabile diCODEARTIFACT_AUTH_TOKEN
ambiente in modo che Maven passi il token nelle richieste. HTTP<settings> ... <servers> <server> <id>codeartifact</id> <username>aws</username> <password>${env.CODEARTIFACT_AUTH_TOKEN}</password> </server> </servers> ... </settings>
-
Aggiungi una
<distributionManagement>
sezione a quella del tuo progetto.pom.xml
<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>
Dopo aver apportato queste modifiche alla configurazione, puoi creare il progetto e pubblicarlo nel repository specificato.
mvn deploy
list-package-versions
Utilizzatelo per verificare che il pacchetto sia stato pubblicato correttamente.
aws codeartifact list-package-versions --domain
my_domain
--domain-owner111122223333
--repositorymy_repo
--formatmaven
\ --namespacecom.company.framework
--packagemy-package-name
Output di esempio:
{ "defaultDisplayVersion": null, "format": "
maven
", "namespace": "com.company.framework
", "package": "my-package-name
", "versions": [ { "version": "1.0", "revision": "REVISION-SAMPLE-1-C7F4S5E9B772FC", "status": "Published" } ] }
Pubblica artefatti di terze parti
Puoi pubblicare artefatti Maven di terze parti in un repository con. CodeArtifact mvn deploy:deploy-file
Questo può essere utile per gli utenti che desiderano pubblicare artefatti e dispongono solo di JAR file e non hanno accesso al codice sorgente o ai file del pacchetto. POM
Il mvn deploy:deploy-file
comando genererà un POM file basato sulle informazioni passate nella riga di comando.
Pubblica artefatti Maven di terze parti
In caso contrario, crea e archivia un token di CodeArtifact autenticazione in una variabile di ambiente come descritto in Passa un token di autenticazione utilizzando una variabile di ambiente Per configurare l'autenticazione nel tuo repository. CodeArtifact
-
Crea un
~/.m2/settings.xml
file con i seguenti contenuti:<settings> <servers> <server> <id>codeartifact</id> <username>aws</username> <password>${env.CODEARTIFACT_AUTH_TOKEN}</password> </server> </servers> </settings>
-
Eseguire il 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
L'esempio precedente pubblica
commons-cli 1.4
. Modifica gli groupId argomenti ArtifactID, version e file per pubblicarne uno diverso. JAR
Queste istruzioni si basano su esempi contenuti nella Guida alla distribuzione di archivi di terze parti su archivi remoti tratti dalla JARs documentazione di
Limita i download delle dipendenze di Maven a un repository CodeArtifact
Se un pacchetto non può essere recuperato da un repository configurato, per impostazione predefinita, il mvn
comando lo recupera da Maven Central. Aggiungi l'mirrors
elemento a per utilizzare sempre il tuo settings.xml
repository. mvn
CodeArtifact
<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 aggiungi un mirrors
elemento, devi avere anche un pluginRepository
elemento nel tuo settings.xml
orpom.xml
. L'esempio seguente recupera le dipendenze delle applicazioni e i plugin Maven da un repository. 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>
L'esempio seguente recupera le dipendenze dell'applicazione da un CodeArtifact repository e recupera i plugin Maven da 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>
Informazioni sul progetto Apache Maven
Per ulteriori informazioni su Maven, consulta questi argomenti sul sito Web del progetto Apache Maven: