Usare CodeArtifact con mvn - CodeArtifact

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

Recupera le dipendenze

mvnPer 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

  1. 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

  2. In settings.xml (in genere si trova in~/.m2/settings.xml), aggiungi una <servers> sezione con un riferimento alla variabile di CODEARTIFACT_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>
  3. Aggiungi l'URLendpoint per il tuo CodeArtifact repository in un elemento. <repository> Puoi farlo nel file settings.xml o nel file del POM tuo progetto.

    Puoi recuperare l'endpoint del tuo repository usando il comando. get-repository-endpoint AWS CLI

    Ad esempio, con un repository denominato my_repo all'interno di un dominio denominato my_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.aws

    Aggiungi 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

  1. 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

  2. Aggiungi una <servers> sezione a settings.xml con un riferimento alla variabile di CODEARTIFACT_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>
  3. 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 --domain my_domain --domain-owner 111122223333 --repository my_repo --format maven \ --namespace com.company.framework --package my-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
  1. 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

  2. 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>
  3. 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 pubblicacommons-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 Apache Maven.

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: