Was ist ein Artefakt und warum braucht Maven es?
maven-metadata.xml
und eine aufgerufene Datei enthalten <artifactId>-<version>.pom
. Beide Dateien haben ein undokumentiertes Schema und eine Semantik.
Was ist ein Artefakt und warum braucht Maven es?
maven-metadata.xml
und eine aufgerufene Datei enthalten <artifactId>-<version>.pom
. Beide Dateien haben ein undokumentiertes Schema und eine Semantik.
Antworten:
Ein Artefakt ist eine Datei, normalerweise eine JAR, die in einem Maven-Repository bereitgestellt wird.
Ein Maven-Build erzeugt ein oder mehrere Artefakte, z. B. eine kompilierte JAR und eine "Quellen" -JAR.
Jedes Artefakt hat eine Gruppen-ID (normalerweise einen umgekehrten Domänennamen wie com.example.foo), eine Artefakt-ID (nur einen Namen) und eine Versionszeichenfolge. Die drei zusammen identifizieren das Artefakt eindeutig.
Die Abhängigkeiten eines Projekts werden als Artefakte angegeben.
Im Allgemeinen ist ein " Artefakt " etwas, das durch den Softwareentwicklungsprozess erzeugt wird, sei es eine softwarebezogene Dokumentation oder eine ausführbare Datei.
In Maven Terminologie ist das Artefakt der resultierende Ausgang des maven build, im Allgemeinen eine jar
oder war
oder andere ausführbare Datei. Artefakte in Maven werden durch ein Koordinatensystem aus Gruppen-ID, Artefakt-ID und Version identifiziert. Maven verwendet das groupId
, artifactId
und version
, um Abhängigkeiten (normalerweise andere JAR-Dateien) zu identifizieren, die zum Erstellen und Ausführen Ihres Codes erforderlich sind.
Ich weiß, dass dies ein alter Thread ist, aber ich wollte ein paar Nuancen hinzufügen.
Es gibt Maven-Artefakte, Repository-Manager-Artefakte und dann Maven-Artefakte Artifact
.
Ein Maven-Artefakt ist genau so, wie andere Kommentatoren / Responder sagen: Es ist eine Sache, die durch das Erstellen eines Maven-Projekts ausgespuckt wird. Das könnte eine .jar
Datei sein oder eine .war
Datei oder eine .zip
Datei oder eine .dll
oder was haben Sie.
Ein Repository-Manager-Artefakt wird von einem Repository-Manager verwaltet. Ein Repository-Manager ist im Grunde ein leistungsstarker Namensdienst für ausführbare Software-Dateien und Bibliotheken. Einem Repository-Manager ist es egal, woher seine Artefakte stammen (möglicherweise stammen sie aus einem Maven-Build, einer lokalen Datei, einem Ant-Build oder einer manuellen Kompilierung ...).
Ein Maven Artifact
ist eine Java-Klasse, die die Art von "Name" darstellt, der von einem Repository-Manager in ein Repository-Manager-Artefakt dereferenziert wird. Wenn in diesem Sinne verwendet wird , eine Artifact
ist nur ein besserer Name solcher Teile wie die aus groupId
, artifactId
, version
, scope
, classifier
und so weiter.
Um alles zusammenzufassen:
Artifact
s durch seine <dependency>
Elemente.Artifact
s in Dateien aufzulösen, indem er den Repository-Manager anweist, ihm einige Repository-Manager-Artefakte zu senden, die den internen Artifact
s entsprechen.Ich hoffe, das hilft.
mvn install
Personen handelt versuchen herauszufinden, was in diesen Eintrag zu setzen. Der vollständige Name des Glases ist also, wofür Sie eingeben -DartifactId=YOUR_ARTIFACT_ID
müssen, stimmt das? Der vollständige JAR-Dateiname mit Version und .jar? Scheint das zu sein, was Sie sagen, würde aber einigen helfen, wirklich explizit zu sein. Andere Antworten kommen dem nahe, aber ich fand deine am besten.
Maven organisiert seine eingebauten Projekte.
Ein artifact
In-Maven ist eine Ressource, die von einem Maven-Projekt generiert wird. Jedes Maven-Projekt kann genau eines artifact
wie ein jar, war, ear
usw. haben.
Die Konfigurationsdatei des Projekts "pom.xml"
beschreibt, wie das Artefakt erstellt wird, wie Komponententests ausgeführt werden usw. In der Regel besteht ein mit Maven erstelltes Softwareprojekt aus vielen Maven-Projekten, die Artefakte erstellen (z. B. Gläser) ) die das Produkt ausmachen.
Z.B
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
Maven-Artefakte sind nicht auf Java-Ressourcen beschränkt. Sie können jede Ressource generieren, die Sie benötigen. ZB Dokumentation, Projekt-Site, Zip-Archive, native Bibliotheken usw.
Jedes Maven-Projekt hat eine eindeutige Kennung aus [groupId, artifactId, version]
. Wenn für ein Maven-Projekt Ressourcen eines anderen Projekts erforderlich sind, wird eine Abhängigkeit unter pom.xml
Verwendung der oben genannten Kennung konfiguriert . Maven löst dann automatisch die Abhängigkeiten auf, wenn ein Build ausgelöst wird. Die Artefakte der erforderlichen Projekte werden dann entweder aus dem lokalen repository
Verzeichnis geladen , bei dem es sich um ein einfaches Verzeichnis bei Ihrem Benutzer handelt, oder aus anderen (Remote-) Repositorys, die in Ihnen angegeben sind pom.xml
.
Frage: Was ist Artefakt in Maven?
ANS: ARTIFACT ist ein JAR (WAR oder EAR), aber es könnte auch etwas anderes sein. Jedes Artefakt hat,
Q. Warum braucht Maven sie?
Antwort: Maven wird verwendet, um sie für unsere Anwendungen verfügbar zu machen.
-DartifactId=YOUR_ARTIFACT_ID
beim Ausführen von mvn install eingeben sollen, nur ein Vorschlag :)
Zum Erstellen wird der Erstellungsprozess als eine Reihe von Artefakten angeordnet. Zu den Artefakten gehören:
Artefakte leben in Repositories.
Normalerweise sprechen wir über die Maven-Terminologie über Gruppen-ID, Artefakt-ID und Snapshot-Version
Gruppen-ID: Identität der Gruppe des Projekts Artefakt-ID: Identität des Projekts Snapshot-Version: Die vom Projekt verwendete Version.
Artefakt ist nichts anderes als eine resultierende Datei wie Jar, War, Ear ....
sagt einfach, dass Artefakte nichts als Pakete sind.