Qu'est ce qu'un artefact Maven?

Qu'est un artefact, et pourquoi ne Maven besoin?

273
demandé sur ROMANIA_engineer 2010-03-21 17:55:06

8 réponses

Un artefact est un fichier, généralement un POT, qui est déployé à un référentiel.

Une construction Maven produit un ou plusieurs artefacts, tels qu'un JAR compilé et un JAR "sources".

Chaque artefact a un identifiant de groupe (généralement un nom de domaine inversé, COMME com.exemple.foo), un ID d'artefact (juste un nom), et une chaîne de version. Les trois ensemble identifient de manière unique l'artefact.

Les dépendances D'un projet sont spécifiées en tant qu'artefacts.

256
répondu Stuart Sierra 2010-03-21 15:07:08

En termes généraux de logiciel, un "artefact " est quelque chose produit par le processus de développement de logiciel, qu'il s'agisse de documentation liée au Logiciel ou d'un fichier exécutable.

Dans la terminologie Maven, l'artefact est la sortie résultante de la construction maven, généralement un jar ou war ou un autre fichier exécutable. Les artefacts dans maven sont identifiés par un système de coordonnées de groupId, artifactId et version. Maven utilise le groupId, artifactId, et version pour identifier les dépendances (généralement autres fichiers jar) nécessaires pour construire et exécuter votre code.

92
répondu Ken Liu 2013-04-17 03:36:12

Maven organise ses projets de construction.

Un artifact dans maven est une ressource générée par un projet maven. Chaque projet maven peut avoir exactement un artifact comme jar, war, ear, etc.
Le fichier de configuration du projet "pom.xml" décrit comment l'artefact est construit, comment les tests unitaires sont exécutés,etc. Généralement, une construction de projet logiciel avec maven se compose de nombreux projets maven qui construisent des artefacts (par exemple des pots) qui constituent le produit.
Par exemple

Root-Project   // produces no artifact, simply triggers the build of the other projects
  App-Project  // The application, that uses the libraries
  Lib1-Project // A project that creates a library (jar)
  Lib2-Project // Another library
  Doc-Project  // A project that generates the user documentation from some resources

Les artefacts Maven ne sont pas limité aux ressources java. Vous pouvez générer n'importe quelle ressource dont vous avez besoin. Par exemple, documentation, site-projet, archives zip, bibliothèques natives, etc.

Chaque projet maven a un identifiant unique composé de [groupId, artifactId, version]. Lorsqu'un projet maven nécessite des ressources d'un autre projet, une dépendance est configurée dans son pom.xml en utilisant l'identifiant mentionné ci-dessus. Maven résout ensuite automatiquement les dépendances lorsqu'une construction est déclenchée. Les artefacts des projets requis sont ensuite chargés soit à partir du local repository, qui est un simple répertoire dans la maison de votre utilisateur, ou à partir d'autres dépôts (distants) spécifiés dans Vous pom.xml.

22
répondu Marc-Christian Schulze 2012-09-20 04:09:42

Je sais que c'est un fil ancien mais je voulais ajouter quelques nuances.

Il y a des artefacts Maven, des artefacts du gestionnaire de référentiel et ensuite il y a des Maven ArtifactS.

Un artefact Maven est comme le disent d'autres commentateurs/intervenants: c'est une chose qui est crachée en construisant un projet Maven. Qui pourrait être un .jar fichier, ou un .war fichier, ou un .zip fichier, ou un .dll, ou ce que vous avez.

Un artefact de gestionnaire de référentiel est une chose qui est, bien, gérée par un référentiel gestionnaire. Un gestionnaire de référentiel est essentiellement un service de nommage hautement performant pour les exécutables logiciels et les bibliothèques. Un gestionnaire de référentiel ne se soucie pas d'où viennent ses artefacts (peut-être qu'ils proviennent d'une construction Maven, ou d'un fichier local, ou D'une construction Ant, ou d'une compilation manuelle...).

Un Maven Artifact est une classe Java qui représente le genre de " nom " qui est déréférencé par un gestionnaire de référentiel dans un artefact de gestionnaire de référentiel. Dans ce sens, un Artifact est juste un glorifié le nom de pièces telles que des groupId, artifactId, version, scope, classifier et ainsi de suite.

Pour tout mettre ensemble:

  • votre projet Maven dépend probablement de plusieurs Artifact s à travers ses éléments <dependency>.
  • Maven interagit avec un gestionnaire de référentiel pour résoudre ces Artifact s en fichiers en demandant au gestionnaire de référentiel de lui envoyer des artefacts de gestionnaire de référentiel qui correspondent aux Artifacts internes.
  • enfin, après la résolution, Maven construit votre projet et produit un artefact Maven. Vous pouvez choisir de "transformer cela en" un artefact de gestionnaire de référentiel en utilisant à son tour l'outil que vous voulez, en l'envoyant au gestionnaire de référentiel avec suffisamment d'informations de coordination pour que d'autres personnes puissent le trouver quand ils le demandent au gestionnaire de référentiel.

J'espère que ça aide.

21
répondu Laird Nelson 2017-10-12 11:55:39

Q. Qu'est-ce Qu'un artefact dans maven?
ANS: artefact est un pot, (guerre ou oreille), mais il pourrait être aussi autre chose. Chaque artefact a,

  • un identifiant de groupe (comme com.votre.paquet),
  • un identifiant d'artefact (juste un nom), et
  • une chaîne de version.
    les trois ensemble identifient de manière unique l'artefact.

Q. Pourquoi Maven besoin d'eux.
Réponse: Maven est utilisé pour les rendre disponibles pour nos applications.

Réponse Simple à une question simple :)

13
répondu VedX 2017-07-10 12:29:38

Un artefact est un POT ou quelque chose que vous stockez dans un référentiel. Maven les sort et construit votre code.

8
répondu duffymo 2010-03-21 15:00:13

Pour maven, le processus de construction est organisé comme un ensemble d'artefacts. Les artefacts comprennent:

  1. les plugins qui composent Maven lui-même.
  2. dépendances dont dépend votre code.
  3. Tout ce que votre build produit qui peut, à son tour, être consommé par autre chose.

Les artefacts vivent dans des dépôts.

7
répondu bmargulies 2010-03-21 15:06:11

Habituellement, nous parlons de la terminologie Maven à propos de L'Id de groupe, de L'ID D'artefact et de la version de L'instantané

Group Id: identité du groupe du projet ID d'artefact: identité du projet Version Snapshot: la version utilisée par le projet.

Artefact n'est rien d'autre qu'un fichier résultant comme Jar, War, Ear....

Dit simplement que les artefacts ne sont que des paquets.

4
répondu Venky Vungarala 2014-09-15 09:39:14