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
mvnPer configurare il recupero delle dipendenze da un CodeArtifact repository, devi modificare il file di configurazione di Maven e, facoltativamentesettings.xml, il POM del tuo progetto.
Se non l'hai fatto, crea e archivia un token di CodeArtifact autenticazione in una variabile di ambiente come descritto in per configurare l'autenticazione nel Passa un token di autenticazione utilizzando una variabile di ambiente 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_TOKENambiente 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'endpoint URL per il tuo CodeArtifact repository in un elemento.
<repository>Puoi farlo nel filesettings.xmlPOM del tuo progetto.Puoi recuperare l'endpoint del tuo repository usando il comando.
get-repository-endpointAWS CLIAd esempio, con un repository denominato
my_repoall'interno di un dominio denominatomy_domain, il comando è il seguente:aws codeartifact get-repository-endpoint --domain my_domain --repository my_repo --format mavenIl
get-repository-endpointcomando 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 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 file POM 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 l'URL completo di tutte le dipendenze scaricate sulla 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 POM. mvn ~/.m2/settings.xml
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.xmlcon un riferimento alla variabile diCODEARTIFACT_AUTH_TOKENambiente 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-versionsUtilizzatelo per verificare che il pacchetto sia stato pubblicato correttamente.
aws codeartifact list-package-versions --domainmy_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 file JAR e non hanno accesso al codice sorgente del pacchetto o ai file POM.
Il mvn deploy:deploy-file comando genererà un file POM 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.xmlfile 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 argomenti GroupiD, artifactID, version e file per pubblicare un JAR diverso.
Queste istruzioni si basano su esempi contenuti nella Guida alla distribuzione di terze parti in un repository remoto tratti dalla documentazione di JARs Apache
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'mirrorselemento 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: