Übrigens können Sie das offizielle Apache Maven Glossar für die Definition eines Artefakts sehen
informatik01
1
Keine dieser Antworten ist vollständig. Sie können dies sehen, indem Sie ein Maven-Repository durchsuchen . Ein Artefakt ist anscheinend ein Verzeichnis , das einige Einschränkungen erfüllt, z. B. muss es eine aufgerufene Datei maven-metadata.xmlund eine aufgerufene Datei enthalten <artifactId>-<version>.pom. Beide Dateien haben ein undokumentiertes Schema und eine Semantik.
Jameshfisher
Antworten:
303
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.
Ist ein Artefakt im Grunde eine JAR-Datei? Die joda time jar-Datei kann also als joda-Artefakt bezeichnet werden, der Ruhezustand kann als Ruhezustand-Artefakt usw. bezeichnet werden?
David Blaine
47
Überlegen Sie, was ein Artefakt wirklich ist. Die Ägypter schufen wunderbare Artefakte wie Keramik. Aber wenn Sie eine ägyptische Schale in der Hand halten würden, würden Sie sie nicht als "Artefakt" bezeichnen, es sei denn, Sie diskutieren die Tatsache, dass es sich um ein Artefakt handelt (Tatsache). Sie würden es als Schüssel bezeichnen. Sie aßen aus der Schüssel. Sie haben nicht aus dem Artefakt gegessen.
cbmeeks
3
Ich denke, bei @cbmeeks geht es darum, dass "Artefakt" kein Name für ein "Ding" ist, sondern eine Rolle im Erstellungsprozess. Alles kann als "Artefakt" klassifiziert werden, wenn Maven es produziert und ihm spezielle Maven- Koordinaten zur Identifizierung gegeben werden.
Garret Wilson
Wenn ich etwas mit dem Namen "com.example: mylibrary: 1.0.0" (groupId: arifactId: version) habe, besteht es aus einem jar, einem pom und einem source jar, wobei es sich bei dem folgenden um ein Artefakt handelt: 1. jede Datei (pom, jar, source jar) ist ein separates Artefakt; 2. Die Dateien, die dieselbe Funktion haben (groupId: artefaktId: version), bilden ein einzelnes Artefakt. 3. noch etwas?
Laurence Gonsalves
Sie erklären nicht, wie Sie die Gruppen- und Artefakt-ID unter Angabe des Klassennamens erhalten. Downvote
Philip Rego
114
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 jaroder waroder andere ausführbare Datei. Artefakte in Maven werden durch ein Koordinatensystem aus Gruppen-ID, Artefakt-ID und Version identifiziert. Maven verwendet das groupId, artifactIdund version, um Abhängigkeiten (normalerweise andere JAR-Dateien) zu identifizieren, die zum Erstellen und Ausführen Ihres Codes erforderlich sind.
In meinem Buch heißt es: "Das Kernartefakt dieser Online-Anwendung wird eine Java-Klasse namens User sein, die" ... Entspricht dies dem von Ihnen erwähnten Artefakt?
David Blaine
@davidblaine - nicht genau, dieser Satz verwendet das Wort einen allgemeineren Sinn.
Ken Liu
27
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 .jarDatei sein oder eine .warDatei oder eine .zipDatei oder eine .dlloder 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 Artifactist 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 Artifactist nur ein besserer Name solcher Teile wie die aus groupId, artifactId, version, scope, classifierund so weiter.
Um alles zusammenzufassen:
Ihr Maven Projekt hängt wahrscheinlich von mehreren Artifacts durch seine <dependency>Elemente.
Maven interagiert mit einem Repository-Manager, um diese Artifacts in Dateien aufzulösen, indem er den Repository-Manager anweist, ihm einige Repository-Manager-Artefakte zu senden, die den internen Artifacts entsprechen.
Nach der Auflösung erstellt Maven schließlich Ihr Projekt und erstellt ein Maven-Artefakt. Sie können sich dafür entscheiden, dies in ein Repository-Manager-Artefakt umzuwandeln, indem Sie es wiederum mit einem beliebigen Tool an den Repository-Manager senden, das über genügend koordinierende Informationen verfügt, die andere Personen finden können, wenn sie den Repository-Manager danach fragen.
+1 für neue Infos zum alten Thread danke! Behebung des Tippfehlers "repoository", obwohl poo manchmal das richtige Wort ist, haha ... jeder sagt, das "Artefakt" sei das eigentliche Glas, könnte hilfreich sein, um Ihre Antwort zu aktualisieren und darauf hinzuweisen, dass es sich bei der Verwendung von beispielsweise um mvn installPersonen handelt versuchen herauszufinden, was in diesen Eintrag zu setzen. Der vollständige Name des Glases ist also, wofür Sie eingeben -DartifactId=YOUR_ARTIFACT_IDmü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.
JimLohse
23
Maven organisiert seine eingebauten Projekte.
Ein artifactIn-Maven ist eine Ressource, die von einem Maven-Projekt generiert wird. Jedes Maven-Projekt kann genau eines artifactwie ein jar, war, earusw. 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 projectsApp-Project// The application, that uses the librariesLib1-Project// A project that creates a library (jar)Lib2-Project// Another libraryDoc-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.xmlVerwendung 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 repositoryVerzeichnis 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.
Schöne Antwort, wie ich auf andere Antwort kommentiert habe , machen Sie deutlich, in was wir -DartifactId=YOUR_ARTIFACT_IDbeim Ausführen von mvn install eingeben sollen, nur ein Vorschlag :)
JimLohse
@ JimLohse danke, bitte zögern Sie nicht, mit "bearbeiten" Titel hinzuzufügen :)
VdeX
9
Ein Artefakt ist eine JAR oder etwas, das Sie in einem Repository speichern. Maven holt sie raus und erstellt Ihren Code.
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.
quelle
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
oderwar
oder andere ausführbare Datei. Artefakte in Maven werden durch ein Koordinatensystem aus Gruppen-ID, Artefakt-ID und Version identifiziert. Maven verwendet dasgroupId
,artifactId
undversion
, um Abhängigkeiten (normalerweise andere JAR-Dateien) zu identifizieren, die zum Erstellen und Ausführen Ihres Codes erforderlich sind.quelle
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 , eineArtifact
ist nur ein besserer Name solcher Teile wie die ausgroupId
,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 internenArtifact
s entsprechen.Ich hoffe, das hilft.
quelle
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 einesartifact
wie einjar, 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
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 unterpom.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 lokalenrepository
Verzeichnis geladen , bei dem es sich um ein einfaches Verzeichnis bei Ihrem Benutzer handelt, oder aus anderen (Remote-) Repositorys, die in Ihnen angegeben sindpom.xml
.quelle
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,
Die drei zusammen identifizieren das Artefakt eindeutig.
Q. Warum braucht Maven sie?
Antwort: Maven wird verwendet, um sie für unsere Anwendungen verfügbar zu machen.
quelle
-DartifactId=YOUR_ARTIFACT_ID
beim Ausführen von mvn install eingeben sollen, nur ein Vorschlag :)Ein Artefakt ist eine JAR oder etwas, das Sie in einem Repository speichern. Maven holt sie raus und erstellt Ihren Code.
quelle
Zum Erstellen wird der Erstellungsprozess als eine Reihe von Artefakten angeordnet. Zu den Artefakten gehören:
Artefakte leben in Repositories.
quelle
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.
quelle