Che cos'è un artefatto e perché ne ha bisogno Maven?
maven-metadata.xml
e un file chiamato <artifactId>-<version>.pom
. Entrambi questi file hanno uno schema e una semantica privi di documenti.
Che cos'è un artefatto e perché ne ha bisogno Maven?
maven-metadata.xml
e un file chiamato <artifactId>-<version>.pom
. Entrambi questi file hanno uno schema e una semantica privi di documenti.
Risposte:
Un artefatto è un file, in genere un JAR, che viene distribuito in un repository Maven.
Una build Maven produce uno o più artefatti, come un JAR compilato e un JAR "source".
Ogni artefatto ha un ID gruppo (di solito un nome di dominio invertito, come com.example.foo), un ID artefatto (solo un nome) e una stringa di versione. I tre insieme identificano in modo univoco il manufatto.
Le dipendenze di un progetto sono specificate come artefatti.
In termini generali di software, un " artefatto " è qualcosa prodotto dal processo di sviluppo del software, che si tratti di documentazione relativa al software o di un file eseguibile.
In Maven terminologia, il manufatto è l'uscita risultante del costruire Maven, generalmente una jar
o di war
file o altro eseguibile. Gli artefatti in Maven sono identificati da un sistema di coordinate di groupId, artefactId e versione. Maven utilizza il groupId
, artifactId
e version
di individuare le dipendenze (di solito altri file jar) necessari per costruire e gestire il codice.
So che questo è un filo antico ma volevo aggiungere alcune sfumature.
Ci sono artefatti Maven, artefatti del gestore del repository e poi ci sono Maven Artifact
.
Un artefatto di Maven è proprio come dicono altri commentatori / responder: è una cosa che viene eliminata costruendo un progetto Maven. Potrebbe essere un .jar
file, o un .war
file, o un .zip
file, o un .dll
, o cosa hai.
Un artefatto del gestore del repository è una cosa che è gestita da un gestore del repository. Un gestore di repository è fondamentalmente un servizio di denominazione altamente performante per eseguibili e librerie software. A un gestore di repository non importa da dove provengano i suoi artefatti (forse provengono da una build Maven, o da un file locale, da una build Ant o da una compilazione manuale ...).
Un Maven Artifact
è una classe Java che rappresenta il tipo di "nome" che viene referenziato da un gestore di repository in un artefatto del gestore di repository. Quando utilizzato in questo senso, una Artifact
è solo un nome glorificato composto di elementi quali groupId
, artifactId
, version
, scope
, classifier
e così via.
Per mettere tutto insieme:
Artifact
s tramite i suoi <dependency>
elementi.Artifact
in file dando istruzioni al gestore di repository di inviargli alcuni artefatti del gestore di repository che corrispondono a quelli interni Artifact
.Spero che aiuti.
mvn install
, le persone sono cercando di capire cosa inserire in quella voce. Quindi il nome completo del barattolo è quello per cui entrare -DartifactId=YOUR_ARTIFACT_ID
, giusto? Il nome completo del file jar con versione e .jar? Sembra essere quello che stai dicendo, ma aiuterebbe alcuni ad essere davvero espliciti. Altre risposte si avvicinano a questo, ma ho pensato al tuo meglio.
Maven organizza la sua costruzione in progetti.
Un artifact
in maven è una risorsa generata da un progetto maven. Ogni progetto maven può avere esattamente uno artifact
come un jar, war, ear
, ecc.
Il file di configurazione del progetto "pom.xml"
descrive come viene costruito l'artefatto, come vengono eseguiti i test unitari, ecc. Comunemente un progetto software creato con maven è costituito da molti progetti maven che creano artefatti (ad es. Vasetti ) che costituiscono il prodotto.
Per esempio
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
Gli artefatti di Maven non si limitano alle risorse Java. Puoi generare qualunque risorsa ti serva. Ad esempio documentazione, sito del progetto, archivi zip, librerie native, ecc.
Ogni progetto maven ha un identificativo univoco che ne consegue [groupId, artifactId, version]
. Quando un progetto maven richiede risorse di un altro progetto, viene configurata una dipendenza pom.xml
utilizzando l'identificatore sopra menzionato. Maven quindi risolve automaticamente le dipendenze quando viene attivata una build. Gli artefatti dei progetti richiesti vengono quindi caricati dal locale repository
, che è una semplice directory nella home dell'utente, oppure da altri repository (remoti) specificati in te pom.xml
.
D. Che cos'è l'Artefatto in Maven?
ANS: ARTIFACT è un JAR, (WAR o EAR), ma potrebbe anche essere qualcos'altro. Ogni artefatto ha,
D. Perché Maven ne ha bisogno?
Risposta: Maven viene utilizzato per renderli disponibili per le nostre applicazioni.
-DartifactId=YOUR_ARTIFACT_ID
quando eseguiamo mvn install, solo un suggerimento :)
Per eseguire, il processo di creazione è organizzato come un insieme di artefatti. I manufatti includono:
Gli artefatti vivono in repository.
di solito parliamo della terminologia di Maven su ID gruppo, ID artefatto e versione istantanea
ID gruppo: identità del gruppo del progetto Id artefatto: identità del progetto Versione istantanea: la versione utilizzata dal progetto.
Il manufatto non è altro che un file risultante come Jar, War, Ear ....
dice semplicemente che gli artefatti non sono altro che pacchetti.