Czym jest artefakt Maven?

Czym jest artefakt i dlaczego Maven go potrzebuje?

Author: ROMANIA_engineer, 2010-03-21

8 answers

Artefakt to plik, Zwykle JAR, który jest wdrażany do repozytorium Maven.

Kompilator Mavena tworzy jeden lub więcej artefaktów, takich jak skompilowany JAR i "źródłowy" JAR.

Każdy artefakt ma identyfikator grupy (Zwykle odwróconą nazwę domeny, jak com.przykład.foo), identyfikator artefaktu (tylko nazwa) i ciąg wersji. Trójka razem jednoznacznie identyfikuje artefakt.

Zależności projektu są określone jako artefakty.

 256
Author: Stuart Sierra,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-03-21 15:07:08

Ogólnie rzecz biorąc, "artefakt " jest czymś wytworzonym w procesie tworzenia oprogramowania, niezależnie od tego, czy jest to dokumentacja związana z oprogramowaniem, czy plik wykonywalny.

W terminologii Mavena, artefakt jest wynikowym wyjściem kompilacji Mavena, zazwyczaj jar LUB war lub innym plikiem wykonywalnym. Artefakty w maven są identyfikowane przez układ współrzędnych groupId, artifactId i version. Maven używa groupId, artifactId, i version do identyfikacji zależności (Zwykle inne pliki jar) potrzebne do zbudowania i uruchomienia kodu.

 92
Author: Ken Liu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-04-17 03:36:12

Maven organizuje swoje projekty.

AN artifact w mavenie jest zasobem generowanym przez projekt maven. Każdy projekt Mavena może mieć dokładnie jeden artifact Jak jar, war, ear itd.
Plik konfiguracyjny projektu "pom.xml" opisuje sposób budowy artefaktu, sposób przeprowadzania testów jednostkowych itp. Zwykle projekt oprogramowania z maven składa się z wielu projektów maven, które budują artefakty (np. Jary), które stanowią produkt.
Np.

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

Artefakty Mavena nie są ograniczone do zasobów java. Możesz wygenerować dowolny zasób, którego potrzebujesz. Np. dokumentacja, projekt-site, zip-archives, native-libraries itp.

Każdy projekt maven posiada unikalny identyfikator [groupId, artifactId, version]. Gdy projekt maven wymaga zasobów innego projektu, zależność jest skonfigurowana w pom.xml przy użyciu wyżej wymienionego identyfikatora. Maven automatycznie rozwiązuje zależności po uruchomieniu kompilacji. Artefakty wymaganych projektów są następnie ładowane albo z lokalnego repository, który jest prostym katalogiem w domu użytkownika, lub z innych (zdalnych) repozytoriów określonych w tobie pom.xml.

 22
Author: Marc-Christian Schulze,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-09-20 04:09:42

Wiem, że to starożytny wątek, ale chciałem dodać kilka niuansów.

Maven jest jednym z najbardziej rozpoznawalnych i najbardziej rozpoznawalnych w świecie repozytoriów.]} [16]}artefakt Mavena jest tak, jak mówią inni komentatorzy/respondenci: jest to rzecz, która jest wypluwana przez budowanie projektu Mavena. To może być plik .jar, plik .war, Plik .zip, lub .dll, lub co masz. [16]}artefakt menedżera repozytoriów jest rzeczą, która jest, dobrze, zarządzana przez repozytorium manager. Menedżer repozytoriów jest w zasadzie wysoce wydajną usługą nazewnictwa dla programów wykonywalnych i bibliotek. Menedżer repozytoriów nie dba o to, skąd pochodzą jego artefakty (może pochodzą z kompilacji Mavena, pliku lokalnego, kompilacji Ant lub ręcznej kompilacji...).

A Maven Artifact jest klasą Java, która reprezentuje rodzaj "nazwy", która zostaje przekształcona przez menedżera repozytoriów w artefakt menedżera repozytoriów. W tym sensie Artifact jest po prostu gloryfikowana nazwa składająca się z takich części jak groupId, artifactId, version, scope, classifier i tak dalej.

Poskładać wszystko do kupy:

  • Twój projekt Mavena prawdopodobnie zależy od kilku Artifact s przez jego <dependency> elementów.
  • Maven współpracuje z menedżerem repozytoriów, aby rozwiązać te Artifact s w plikach, zlecając menedżerowi repozytoriów wysłanie mu artefaktów, które odpowiadają wewnętrznym Artifact s. {30]}
  • wreszcie, po rozwiązaniu, Maven buduje swoje projektuje i produkuje artefakt Mavena. Możesz zmienić to w artefakt menedżera repozytoriów, używając dowolnego narzędzia, które chcesz, wysyłając go do menedżera repozytoriów z wystarczającą ilością koordynujących informacji, aby inni ludzie mogli je znaleźć, gdy {35]} poproszą o to menedżera repozytoriów.
Mam nadzieję, że to pomoże.
 21
Author: Laird Nelson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-10-12 11:55:39

Q. Co To jest Artifact w maven?
ODP: artefakt to słoik (wojna lub ucho), ale może to być również coś innego. Każdy artefakt ma,

  • identyfikator grupy (jak com.Twoje.pakiet),
  • identyfikator artefaktu (tylko nazwa), oraz
  • ciąg wersji.
    trójka razem jednoznacznie identyfikuje artefakt.

P. dlaczego Maven ich potrzebuje.
Odp: Maven jest używany do udostępniania ich dla naszych aplikacji.

Prosta odpowiedź na proste pytanie :)

 13
Author: VedX,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-07-10 12:29:38

Artefakt to słoik lub coś, co przechowujesz w repozytorium. Maven je wyciąga i buduje Twój kod.

 8
Author: duffymo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-03-21 15:00:13

Dla Mavena proces budowania jest ułożony jako zbiór artefaktów. Artefakty to:

  1. wtyczki, które składają się na samego Mavena.
  2. zależności, od których zależy Twój kod.
  3. Wszystko, co wytwarza twoja konstrukcja, które może z kolei zostać skonsumowane przez coś innego.

Artefakty żyją w repozytoriach.

 7
Author: bmargulies,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-03-21 15:06:11

Zazwyczaj mówimy o terminologii Mavena o identyfikatorze grupy, identyfikatorze artefaktu i wersji Migawki

Group Id:tożsamość grupy projektu Artifact Id:tożsamość projektu Wersja migawki:wersja używana przez projekt.

Artefakt to nic innego jak wynikowy plik Jak Jar, War, Ear....

Po prostu mówi, że Artefakty to nic innego jak pakiety.

 4
Author: Venky Vungarala,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-09-15 09:39:14