Qu'est-ce qu'un artefact et pourquoi Maven en a-t-il besoin?
maven-metadata.xml
et un fichier appelé <artifactId>-<version>.pom
. Ces deux fichiers ont un schéma et une sémantique non documentés.
Qu'est-ce qu'un artefact et pourquoi Maven en a-t-il besoin?
maven-metadata.xml
et un fichier appelé <artifactId>-<version>.pom
. Ces deux fichiers ont un schéma et une sémantique non documentés.
Réponses:
Un artefact est un fichier, généralement un fichier JAR, qui est déployé dans un référentiel Maven.
Une build Maven produit un ou plusieurs artefacts, tels qu'un JAR compilé et un JAR "sources".
Chaque artefact a un ID de groupe (généralement un nom de domaine inversé, comme com.example.foo), un ID d'artefact (juste un nom) et une chaîne de version. Les trois ensemble identifient de façon unique l'artefact.
Les dépendances d'un projet sont spécifiées comme des artefacts.
En termes généraux de logiciel, un " artefact " est quelque chose produit par le processus de développement logiciel, qu'il s'agisse d'une 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 un war
autre fichier exécutable. Les artefacts dans maven sont identifiés par un système de coordonnées groupId, artifactId et version. Maven utilise groupId
, artifactId
et version
d'identifier les dépendances (généralement d' autres fichiers jar) nécessaires pour construire et exécuter votre code.
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 puis il y a des Maven Artifact
.
Un artefact Maven est tout comme le disent d'autres commentateurs / intervenants: c'est une chose qui est crachée en construisant un projet Maven. Cela pourrait être un .jar
fichier, ou un .war
fichier, ou un .zip
fichier, ou un .dll
, ou ce que vous avez.
Un artefact du gestionnaire de référentiel est une chose qui est, bien, gérée par un gestionnaire de référentiel. Un gestionnaire de référentiel est essentiellement un service de nommage très 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 build Maven, ou d'un fichier local, ou d'une build Ant, ou d'une compilation manuelle ...).
Un Maven Artifact
est une classe Java qui représente le type de "nom" qui est déréférencé par un gestionnaire de référentiel en un artefact du gestionnaire de référentiel. Lorsqu'ils sont utilisés dans ce sens, un Artifact
est juste un nom glorifié composé de pièces telles que groupId
, artifactId
, version
, scope
, classifier
et ainsi de suite.
Pour tout rassembler:
Artifact
s par le biais de ses <dependency>
éléments.Artifact
s en fichiers en demandant au gestionnaire de référentiel de lui envoyer des artefacts du gestionnaire de référentiel qui correspondent aux Artifact
s internes .J'espère que cela pourra aider.
mvn install
, les gens sont essayer de comprendre quoi mettre dans cette entrée. Donc, le nom complet du pot est pour quoi entrer -DartifactId=YOUR_ARTIFACT_ID
, n'est-ce pas? Le nom complet du fichier jar avec version et .jar? Semble être ce que vous dites mais aiderait certains à être vraiment explicites. D'autres réponses se rapprochent de cela, mais je pensais que la vôtre était la meilleure.
Maven organise ses projets de build in.
Un artifact
in maven est une ressource générée par un projet maven. Chaque projet maven peut en avoir un exactement artifact
comme un 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. ) 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 se limitent pas aux ressources java. Vous pouvez générer toutes les ressources dont vous avez besoin. Par exemple, documentation, site de 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 celui-ci en pom.xml
utilisant l'identifiant susmentionné. Maven résout ensuite automatiquement les dépendances lorsqu'une génération 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, soit à partir d'autres référentiels (distants) spécifiés en vous pom.xml
.
Q. Qu'est-ce que l'artefact dans Maven?
ANS: ARTIFACT est un JAR, (WAR ou EAR), mais cela pourrait aussi être autre chose. Chaque artefact a,
Q. Pourquoi Maven en a-t-il besoin?
Rép: Maven est utilisé pour les rendre disponibles pour nos applications.
-DartifactId=YOUR_ARTIFACT_ID
expliquez ce que nous sommes censés saisir lors de l'exécution de l'installation de mvn, juste une suggestion :)
Pour maven, le processus de construction est organisé comme un ensemble d'artefacts. Les artefacts comprennent:
Les artefacts vivent dans des référentiels.
généralement, 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 Artifact Id: identité du projet Snapshot version: la version utilisée par le projet.
L'artefact n'est rien d'autre qu'un fichier résultant comme Jar, War, Ear ....
dit simplement que les artefacts ne sont que des packages.