Question

Comment Maven interagit avec les différents référentiels comme Nexus et Artifactory?

Il est fait en utilisant leur Api REST?Il est possible de résoudre dépendante des artefacts pour les emplacements réels pour obtenir de l'aide de ces Api, mais les deux Api sont un peu différents les uns des autres (autant que je le vois [Artifactory] [Nexus]) et le référentiel de définition de l'élément en pom Maven fichiers ne contiennent pas d'une propriété à l'état, le type de référentiel.

Alors, comment ne Maven résout de cet artefact groupId, artifactId et la version d'un fichier existant dans différents référentiels?Est-ce que ces référentiels de mettre en œuvre certaines autres normalisé API qui permet de Maven à la demande de fichiers dans un référentiel de façon agnostique?

Était-ce utile?

La solution

YOY Définir des référentiels pour rechercher des artefacts de 2 façons:

1) Dans votre POM.XML dans la section Projet

<project>
    ....
    <repositories>
         <repository>
            ...
            <url>...</url>
         </repository>
    </repositories>
</project>

2) et / ou dans le fichier genévoodiceCode (il existe de nombreux exemples sur Web)

Maven télécharge des artefacts à partir de la construction d'une URL d'artefact à l'aide de l'URL de référentiel et du chemin ajouté selon l'artefact Groupe, ID, Version, Type et Classificateur. Et convertit des points dans Groupid en '/'

RepoUrl/groupId/artifactId/version/artifactId-version-classifier.type

Exemples:

https://repository.apache.org/content/repositories/releases/commons-io/commons-io/2.4/commons-io-2.4.jar

https://repository.apache.org/content/repositories/releases/commons-io/commons-io/2.4/commons-io-2.4-sources.jar

https://repository.apache.org/content/repositories/releases/commons-io/commons-io/2.4/commons-io-2.4-javadoc.jar

Ceci est la convention et il est indépendant de l'artefactory ou du Nexus. Ceci est maven. Tout est transféré via le HTTP ou HTTPS. De plus, Maven gère des fichiers MD5 et SHA1 à des fins de sécurité.

Une fois téléchargé, Artefact stocké dans un référentiel local sur votre poste de travail à $USER_HOME$/.m2/settings.xml (elle a une structure similaire à celle du référentiel à distance) qui agit comme un cache et un proxy.

Un artefactory ou un nexus typiquement sont une sorte de cache local et de proxy au niveau de l'entreprise avec certaines fonctionnalités de la gérer. Ils hébergent sûrement des artefacts Maven publiés par les développeurs de l'entreprise.

ressemble à un 3 niveaux de référentiels: local - société locale - Global

Autres conseils

Maven utilise une sorte de convention de nommage.Dans pom.xml vous définissez une URL de la racine de l'espace de stockage (par ex. http://download.java.net/maven/2/) et puis maven est en mesure de résoudre un artefact par la construction d'une URL:

<root URL>/${group id where dots are replaced by slashes}/${artifact id}/${version}

Donc, pour la suite de la dépendance

<groupId>org.apache.lucene</groupId>
<artifactId>lucene-core</artifactId>
<version>2.0.0</version>

Maven va essayer de trouver des pdm et un pot à http://download.java.net/maven/2/org/apache/lucene/lucene-core/2.0.0

Cela signifie que chaque URI qui suit présente convention peut servir comme repo Maven.

Maven utilise des appels HTTP normaux pour interagir avec des référentiels.Vous n'avez besoin que d'un serveur HTTP pour servir un référentiel maven.Maven s'appuie sur une hiérarchie de répertoires spécifique et quelques fichiers de métadonnées.(Le référentiel local sur disque où Maven Caches Fichiers qu'il a téléchargé est le même format).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top