btw Anda dapat melihat glosarium resmi Apache Maven untuk definisi Artifact
informatik01
1
Tidak satu pun dari jawaban ini yang lengkap. Anda dapat melihat ini hanya dengan menelusuri repositori Maven . Artefak tampaknya adalah direktori yang memenuhi beberapa kendala, misalnya harus mengandung file yang dipanggil maven-metadata.xmldan file yang dipanggil <artifactId>-<version>.pom. Kedua file tersebut memiliki beberapa skema dan semantik tidak berdokumen.
jameshfisher
Jawaban:
303
Artefak adalah file, biasanya JAR, yang akan ditempatkan ke repositori Maven.
Build Maven menghasilkan satu atau lebih artefak, seperti JAR yang dikompilasi dan JAR "sumber".
Setiap artefak memiliki ID grup (biasanya nama domain terbalik, seperti com.example.foo), ID artefak (hanya nama), dan string versi. Ketiganya bersama-sama mengidentifikasi artefak secara unik.
Apakah artefak pada dasarnya adalah file JAR? Jadi, file jar waktu joda dapat disebut artefak joda, stoples hibernasi dapat disebut artefak hibernasi dll?
david blaine
47
Pikirkan apa sebenarnya artefak itu. Orang Mesir menciptakan artefak yang indah seperti tembikar. Tetapi, jika Anda memegang mangkuk Mesir di tangan Anda, Anda tidak akan menyebutnya sebagai "artefak" kecuali jika Anda mendiskusikan fakta bahwa itu ADALAH artefak (fakta). Anda akan menyebutnya sebagai mangkuk. Mereka makan dari mangkuk. Mereka tidak makan keluar dari artefak.
cbmeeks
3
Saya pikir apa yang dilakukan oleh @ cbmeeks adalah bahwa "artefak" bukanlah nama untuk "sesuatu", itu adalah peran dalam proses pembangunan. Apa pun dapat digolongkan sebagai "artefak" jika Maven memproduksinya dan diberi koordinat Maven khusus untuk mengidentifikasinya.
Garret Wilson
Jika saya memiliki sesuatu yang disebut "com.example: mylibrary: 1.0.0" (groupId: artifactId: version), yang terdiri dari toples, pom, dan toples sumber, yang dari yang berikut adalah artefak: 1. setiap file (pom, toples, toples sumber) adalah artefak yang terpisah; 2. kumpulan file yang berbagi sama (groupId: artifactId: versi) membuat satu artefak; 3. sesuatu yang lain?
Laurence Gonsalves
Anda tidak menjelaskan bagaimana cara mendapatkan groupid dan artifactid diberi nama kelas. Downvote
Philip Rego
114
Dalam istilah perangkat lunak umum, " artefak " adalah sesuatu yang dihasilkan oleh proses pengembangan perangkat lunak, apakah itu dokumentasi terkait perangkat lunak atau file yang dapat dieksekusi.
Dalam terminologi Maven, artefak adalah output yang dihasilkan dari maven membangun, umumnya jaratau waratau lainnya file eksekusi. Artefak dalam pakar diidentifikasi oleh sistem koordinat groupId, artifactId, dan versi. Maven menggunakan groupId, artifactIddan versionuntuk mengidentifikasi dependensi (biasanya file jar lainnya) yang diperlukan untuk membangun dan menjalankan kode Anda.
Buku saya mengatakan "artifak inti dari aplikasi online ini adalah kelas Java yang bernama Pengguna, yang akan" ... Apakah ini sama dengan artefak yang Anda sebutkan?
david blaine
@davidblaine - tidak persis, kalimat itu menggunakan kata yang lebih umum.
Ken Liu
27
Saya tahu ini adalah utas kuno tetapi saya ingin menambahkan beberapa nuansa.
Ada artefak Maven, artefak manajer repositori dan kemudian ada Maven Artifacts.
Artefak Maven sama seperti komentator / responden lain mengatakan: itu adalah hal yang diludahkan dengan membangun proyek Maven. Itu bisa berupa .jarfile, atau .warfile, atau .zipfile .dll, atau apa pun yang Anda miliki.
Artefak manajer repositori adalah hal yang dikelola oleh manajer repositori. Manajer repositori pada dasarnya adalah layanan penamaan yang sangat berkinerja untuk perangkat lunak dan perpustakaan yang dapat dieksekusi. Manajer repositori tidak peduli dari mana artefaknya berasal (mungkin berasal dari build Maven, atau file lokal, atau build Ant, atau kompilasi dengan tangan ...).
A Maven Artifactadalah kelas Java yang mewakili jenis "nama" yang akan direferensikan oleh manajer repositori menjadi artefak manajer repositori. Ketika digunakan dalam pengertian ini, sebuah Artifacthanya nama dimuliakan terdiri dari bagian seperti groupId, artifactId, version, scope, classifierdan sebagainya.
Untuk menyatukan semuanya:
Proyek Maven Anda mungkin tergantung pada beberapa Artifacts melalui <dependency>unsur - unsurnya.
Maven berinteraksi dengan manajer repositori untuk menyelesaikannya Artifactke dalam file dengan menginstruksikan manajer repositori untuk mengirimkannya beberapa artefak manajer repositori yang sesuai dengan internal Artifact.
Akhirnya, setelah resolusi, Maven membangun proyek Anda dan menghasilkan artefak Maven. Anda dapat memilih untuk "mengubah ini menjadi" artefak manajer repositori dengan, pada gilirannya, menggunakan alat apa pun yang Anda suka, mengirimkannya ke manajer repositori dengan informasi koordinasi yang cukup sehingga orang lain dapat menemukannya ketika mereka meminta manajer repositori untuk itu.
+1 untuk info baru di utas lama, terima kasih! Perbaiki kesalahan ketik "repoositori" meskipun terkadang kotoran mungkin kata yang tepat haha ... semua orang mengatakan "artefak" adalah toples yang sebenarnya, mungkin membantu untuk memperbarui jawaban Anda untuk menunjukkan bahwa ketika menggunakan, misalnya mvn install, orang mencoba mencari tahu apa yang harus dimasukkan dalam entri itu. Jadi nama lengkap guci itu untuk apa -DartifactId=YOUR_ARTIFACT_ID, apakah itu benar? Nama file jar lengkap dengan versi dan .jar? Tampaknya apa yang Anda katakan tetapi akan membantu beberapa orang menjadi sangat eksplisit. Jawaban lain mendekati ini tapi saya pikir Anda yang terbaik.
JimLohse
23
Maven mengelola proyeknya.
Seorang artifactpakar adalah sumber daya yang dihasilkan oleh proyek pakar. Setiap proyek pakar dapat memiliki persis satu artifactseperti jar, war, ear, dll
. File konfigurasi proyek "pom.xml"menjelaskan bagaimana artefak dibangun, bagaimana tes unit dijalankan, dll. Umumnya proyek perangkat lunak yang dibangun dengan pakar terdiri dari banyak proyek pakar yang membangun artefak (misalnya toples) ) yang merupakan produk.
Misalnya
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
Artefak Maven tidak terbatas pada sumber daya java. Anda dapat menghasilkan sumber daya apa pun yang Anda butuhkan. Misalnya dokumentasi, situs proyek, arsip zip, perpustakaan asli, dll.
Setiap proyek pakar memiliki pengidentifikasi unik yang terdiri dari [groupId, artifactId, version]. Ketika proyek pakar membutuhkan sumber daya dari proyek lain, ketergantungan dikonfigurasi di dalamnya pom.xmlmenggunakan pengidentifikasi yang disebutkan di atas. Maven kemudian secara otomatis menyelesaikan dependensi ketika membangun dipicu. Artefak dari proyek yang diperlukan kemudian dimuat baik dari lokal repository, yang merupakan direktori sederhana di rumah pengguna Anda, atau dari repositori (jauh) lain yang ditentukan dalam Anda pom.xml.
Jawaban yang bagus, seperti yang saya komentari pada jawaban lain , buat secara eksplisit apa yang seharusnya kita ketik -DartifactId=YOUR_ARTIFACT_IDketika menjalankan mvn install, hanya sebuah saran :)
JimLohse
@JimLohse terima kasih, silakan tambahkan dengan judul "edit" :)
VdeX
9
Artefak adalah JAR atau sesuatu yang Anda simpan di repositori. Maven mengeluarkannya dan membuat kode Anda.
maven-metadata.xml
dan file yang dipanggil<artifactId>-<version>.pom
. Kedua file tersebut memiliki beberapa skema dan semantik tidak berdokumen.Jawaban:
Artefak adalah file, biasanya JAR, yang akan ditempatkan ke repositori Maven.
Build Maven menghasilkan satu atau lebih artefak, seperti JAR yang dikompilasi dan JAR "sumber".
Setiap artefak memiliki ID grup (biasanya nama domain terbalik, seperti com.example.foo), ID artefak (hanya nama), dan string versi. Ketiganya bersama-sama mengidentifikasi artefak secara unik.
Ketergantungan proyek ditentukan sebagai artefak.
sumber
Dalam istilah perangkat lunak umum, " artefak " adalah sesuatu yang dihasilkan oleh proses pengembangan perangkat lunak, apakah itu dokumentasi terkait perangkat lunak atau file yang dapat dieksekusi.
Dalam terminologi Maven, artefak adalah output yang dihasilkan dari maven membangun, umumnya
jar
atauwar
atau lainnya file eksekusi. Artefak dalam pakar diidentifikasi oleh sistem koordinat groupId, artifactId, dan versi. Maven menggunakangroupId
,artifactId
danversion
untuk mengidentifikasi dependensi (biasanya file jar lainnya) yang diperlukan untuk membangun dan menjalankan kode Anda.sumber
Saya tahu ini adalah utas kuno tetapi saya ingin menambahkan beberapa nuansa.
Ada artefak Maven, artefak manajer repositori dan kemudian ada Maven
Artifact
s.Artefak Maven sama seperti komentator / responden lain mengatakan: itu adalah hal yang diludahkan dengan membangun proyek Maven. Itu bisa berupa
.jar
file, atau.war
file, atau.zip
file.dll
, atau apa pun yang Anda miliki.Artefak manajer repositori adalah hal yang dikelola oleh manajer repositori. Manajer repositori pada dasarnya adalah layanan penamaan yang sangat berkinerja untuk perangkat lunak dan perpustakaan yang dapat dieksekusi. Manajer repositori tidak peduli dari mana artefaknya berasal (mungkin berasal dari build Maven, atau file lokal, atau build Ant, atau kompilasi dengan tangan ...).
A Maven
Artifact
adalah kelas Java yang mewakili jenis "nama" yang akan direferensikan oleh manajer repositori menjadi artefak manajer repositori. Ketika digunakan dalam pengertian ini, sebuahArtifact
hanya nama dimuliakan terdiri dari bagian sepertigroupId
,artifactId
,version
,scope
,classifier
dan sebagainya.Untuk menyatukan semuanya:
Artifact
s melalui<dependency>
unsur - unsurnya.Artifact
ke dalam file dengan menginstruksikan manajer repositori untuk mengirimkannya beberapa artefak manajer repositori yang sesuai dengan internalArtifact
.Semoga itu bisa membantu.
sumber
mvn install
, orang mencoba mencari tahu apa yang harus dimasukkan dalam entri itu. Jadi nama lengkap guci itu untuk apa-DartifactId=YOUR_ARTIFACT_ID
, apakah itu benar? Nama file jar lengkap dengan versi dan .jar? Tampaknya apa yang Anda katakan tetapi akan membantu beberapa orang menjadi sangat eksplisit. Jawaban lain mendekati ini tapi saya pikir Anda yang terbaik.Maven mengelola proyeknya.
Seorang
artifact
pakar adalah sumber daya yang dihasilkan oleh proyek pakar. Setiap proyek pakar dapat memiliki persis satuartifact
sepertijar, war, ear
, dll. File konfigurasi proyek
"pom.xml"
menjelaskan bagaimana artefak dibangun, bagaimana tes unit dijalankan, dll. Umumnya proyek perangkat lunak yang dibangun dengan pakar terdiri dari banyak proyek pakar yang membangun artefak (misalnya toples) ) yang merupakan produk.Misalnya
Artefak Maven tidak terbatas pada sumber daya java. Anda dapat menghasilkan sumber daya apa pun yang Anda butuhkan. Misalnya dokumentasi, situs proyek, arsip zip, perpustakaan asli, dll.
Setiap proyek pakar memiliki pengidentifikasi unik yang terdiri dari
[groupId, artifactId, version]
. Ketika proyek pakar membutuhkan sumber daya dari proyek lain, ketergantungan dikonfigurasi di dalamnyapom.xml
menggunakan pengidentifikasi yang disebutkan di atas. Maven kemudian secara otomatis menyelesaikan dependensi ketika membangun dipicu. Artefak dari proyek yang diperlukan kemudian dimuat baik dari lokalrepository
, yang merupakan direktori sederhana di rumah pengguna Anda, atau dari repositori (jauh) lain yang ditentukan dalam Andapom.xml
.sumber
Q. Apa Artefak pada pakar?
ANS: ARTIFACT adalah JAR, (PERANG atau TELINGA), tetapi bisa juga sesuatu yang lain. Setiap artefak memiliki,
Ketiganya bersama-sama mengidentifikasi artefak secara unik.
Q. Mengapa Maven membutuhkannya?
Jawab: Maven digunakan untuk membuatnya tersedia untuk aplikasi kita.
sumber
-DartifactId=YOUR_ARTIFACT_ID
ketika menjalankan mvn install, hanya sebuah saran :)Artefak adalah JAR atau sesuatu yang Anda simpan di repositori. Maven mengeluarkannya dan membuat kode Anda.
sumber
Untuk pakar, proses membangun diatur sebagai satu set artefak. Artefak meliputi:
Artefak hidup dalam repositori.
sumber
biasanya kita berbicara Terminologi Maven tentang ID Grup, Artefak Id dan Versi Snapshot
Id Grup: identitas grup proyek Id Artifact: identitas proyek Versi snapshot: versi yang digunakan oleh proyek.
Artefak hanyalah beberapa file yang dihasilkan seperti Jar, War, Ear ....
hanya mengatakan Artefak hanyalah paket.
sumber