Кстати, вы можете увидеть официальный глоссарий Apache Maven для определения Артефакта
informatik01
1
Ни один из этих ответов не является полным. Вы можете увидеть это, просто просмотрев репозиторий Maven . По-видимому, артефакт - это каталог, удовлетворяющий некоторым ограничениям, например, он должен содержать файл с именем maven-metadata.xmlи файл с именем <artifactId>-<version>.pom. Оба этих файла имеют недокументированную схему и семантику.
jameshfisher
Ответы:
303
Артефакт - это файл, обычно JAR, который развертывается в репозитории Maven.
Сборка Maven создает один или несколько артефактов, таких как скомпилированный JAR и «исходный» JAR.
Каждый артефакт имеет идентификатор группы (обычно обратное имя домена, например com.example.foo), идентификатор артефакта (просто имя) и строку версии. Три вместе однозначно идентифицируют артефакт.
Является ли артефакт в основном файлом JAR? Итак, файл joda time jar можно назвать артефактом joda, jibernate jar можно назвать артефактом hibernate и т. Д.?
Дэвид Блейн
47
Подумайте, что на самом деле артефакт. Египтяне создали замечательные артефакты, такие как керамика. Но если бы вы держали в руке египетскую чашу, вы бы не назвали ее «артефактом», если бы вы не обсуждали тот факт, что это артефакт (факт). Вы бы назвали это миской. Они ели из чаши. Они не ели из артефакта.
cbmeeks
3
Я думаю, что @cbmeeks стремится к тому, что «артефакт» - это не имя для «вещи», это роль в процессе сборки. Все, что может быть классифицировано как «артефакт», если Maven производит это, и ему дают специальные координаты Maven, чтобы идентифицировать это.
Гаррет Уилсон
Если у меня есть что-то под названием «com.example: mylibrary: 1.0.0» (groupId: artifactId: version), которое состоит из jar, pom и jar с исходным кодом, что из перечисленного является артефактом: 1. каждый файл (pom, jar, source jar) - это отдельный артефакт; 2. набор файлов с одинаковым (groupId: artifactId: version) составляет один артефакт; 3. что-то еще?
Лоуренс Гонсалвес
Вы не объясняете, как получить groupid и artifactid с именем класса. Downvote
Филипп Рего
114
В общих терминах программного обеспечения « артефакт » - это нечто, создаваемое процессом разработки программного обеспечения, будь то документация, связанная с программным обеспечением, или исполняемый файл.
В терминологии Maven, артефакт в результате выхода из Maven сборки, как правило, jarили warили другой исполняемый файл. Артефакты в maven идентифицируются системой координат groupId, artifactId и version. Maven использует groupId, artifactIdи versionдля выявления зависимостей (обычно другие JAR - файлы) , необходимых для сборки и запуска кода.
В моей книге говорится, что «основным артефактом этого онлайн-приложения будет Java-класс с именем User, который будет» ... Это то же самое, что и упомянутый вами артефакт?
Дэвид Блейн
@davidblaine - не совсем, это предложение использует слово в более общем смысле.
Кен Лю
27
Я знаю, что это древняя тема, но я хотел добавить несколько нюансов.
Есть артефакты Maven, артефакты менеджера хранилища, а затем есть Maven Artifacts.
Артефакт Maven так же, как говорят другие комментаторы / респонденты: это то, что выплевывается при создании проекта Maven. Это может быть .jarфайл, или .warфайл, или .zipфайл, или a .dll, или что у вас есть.
Артефакт менеджера хранилища - это вещь, которой, в общем-то, управляет менеджер хранилища. Менеджер хранилища - это, по сути, высокопроизводительный сервис именования для программных исполняемых файлов и библиотек. Менеджеру хранилища не важно, откуда берутся его артефакты (может быть, они получены из сборки Maven, или из локального файла, или сборки Ant, или ручной компиляции ...).
Maven Artifact- это Java-класс, представляющий своего рода «имя», которое разыменовывается менеджером хранилища в артефакт менеджера хранилища. При использовании в этом смысле, Artifactэто просто прославил имя из таких частей , как groupId, artifactId, version, scope, classifierи так далее.
Чтобы сложить все вместе:
Ваш проект Maven , вероятно , зависит от нескольких Artifactсекунд путем его <dependency>элементов.
Maven взаимодействует с менеджером хранилища, чтобы Artifactпреобразовать эти файлы в файлы, приказывая менеджеру хранилища отправить ему некоторые артефакты менеджера хранилища, которые соответствуют внутренним файлам Artifact.
Наконец, после разрешения Maven создает ваш проект и создает артефакт Maven. Вы можете выбрать «превратить это в» Репозиторное менеджер артефакта посредством, в свою очередь, используя любой инструмент , который вам нравится, и отправить его менеджеру хранилища достаточно информации , координирующей , что другие люди могут найти его , когда они спрашивают менеджер хранилища для него.
+1 за новую информацию по старой теме спасибо! Исправьте опечатку "repoository", хотя иногда poo может быть правильным словом, ха-ха ... все говорят, что "артефакт" - это фактический jar, может быть полезно обновить ваш ответ, чтобы указать, что при использовании, например mvn install, люди пытаясь понять, что добавить в эту запись. Таким образом, полное название банки - это то, что нужно вводить -DartifactId=YOUR_ARTIFACT_ID, верно? Полное имя файла JAR с версией и .jar? Кажется, это то, что вы говорите, но поможет некоторым быть действительно откровенным. Другие ответы близки к этому, но я думал, что ваш лучше.
JimLohse
23
Maven организует его сборку в проектах.
artifactВ мавена является ресурсом , порожденным проектом Maven. У каждого проекта maven может быть ровно один artifactтакой jar, war, ear, как a и т. Д.
Файл конфигурации проекта "pom.xml"описывает, как создается артефакт, как выполняются модульные тесты и т. Д. Обычно сборка программного проекта с maven состоит из многих maven-проектов, которые создают артефакты (например, jars ) которые составляют продукт.
Например
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 артефакты не ограничиваются ресурсами Java. Вы можете создать любой ресурс, который вам нужен. Например, документация, проект-сайт, zip-архивы, native-библиотеки и т. Д.
Каждый проект maven имеет уникальный идентификатор [groupId, artifactId, version]. Когда для проекта maven требуются ресурсы другого проекта, в нем настраивается зависимость с pom.xmlиспользованием вышеуказанного идентификатора. Затем Maven автоматически разрешает зависимости при запуске сборки. Затем артефакты требуемых проектов загружаются либо из локального repositoryкаталога, который является простым каталогом в доме вашего пользователя, либо из других (удаленных) репозиториев, указанных вами pom.xml.
Хороший ответ, поскольку я прокомментировал другой ответ , сделайте явным то, во что мы должны печатать -DartifactId=YOUR_ARTIFACT_IDпри запуске mvn install, просто предложение :)
JimLohse
@JimLohse спасибо, пожалуйста, не стесняйтесь добавлять с заголовком "изменить" :)
VdeX
9
Артефакт - это JAR или что-то, что вы храните в репозитории. Maven получает их и создает ваш код.
maven-metadata.xml
и файл с именем<artifactId>-<version>.pom
. Оба этих файла имеют недокументированную схему и семантику.Ответы:
Артефакт - это файл, обычно JAR, который развертывается в репозитории Maven.
Сборка Maven создает один или несколько артефактов, таких как скомпилированный JAR и «исходный» JAR.
Каждый артефакт имеет идентификатор группы (обычно обратное имя домена, например com.example.foo), идентификатор артефакта (просто имя) и строку версии. Три вместе однозначно идентифицируют артефакт.
Зависимости проекта указываются как артефакты.
источник
В общих терминах программного обеспечения « артефакт » - это нечто, создаваемое процессом разработки программного обеспечения, будь то документация, связанная с программным обеспечением, или исполняемый файл.
В терминологии Maven, артефакт в результате выхода из Maven сборки, как правило,
jar
илиwar
или другой исполняемый файл. Артефакты в maven идентифицируются системой координат groupId, artifactId и version. Maven используетgroupId
,artifactId
иversion
для выявления зависимостей (обычно другие JAR - файлы) , необходимых для сборки и запуска кода.источник
Я знаю, что это древняя тема, но я хотел добавить несколько нюансов.
Есть артефакты Maven, артефакты менеджера хранилища, а затем есть Maven
Artifact
s.Артефакт Maven так же, как говорят другие комментаторы / респонденты: это то, что выплевывается при создании проекта Maven. Это может быть
.jar
файл, или.war
файл, или.zip
файл, или a.dll
, или что у вас есть.Артефакт менеджера хранилища - это вещь, которой, в общем-то, управляет менеджер хранилища. Менеджер хранилища - это, по сути, высокопроизводительный сервис именования для программных исполняемых файлов и библиотек. Менеджеру хранилища не важно, откуда берутся его артефакты (может быть, они получены из сборки Maven, или из локального файла, или сборки Ant, или ручной компиляции ...).
Maven
Artifact
- это Java-класс, представляющий своего рода «имя», которое разыменовывается менеджером хранилища в артефакт менеджера хранилища. При использовании в этом смысле,Artifact
это просто прославил имя из таких частей , какgroupId
,artifactId
,version
,scope
,classifier
и так далее.Чтобы сложить все вместе:
Artifact
секунд путем его<dependency>
элементов.Artifact
преобразовать эти файлы в файлы, приказывая менеджеру хранилища отправить ему некоторые артефакты менеджера хранилища, которые соответствуют внутренним файламArtifact
.Надеюсь, это поможет.
источник
mvn install
, люди пытаясь понять, что добавить в эту запись. Таким образом, полное название банки - это то, что нужно вводить-DartifactId=YOUR_ARTIFACT_ID
, верно? Полное имя файла JAR с версией и .jar? Кажется, это то, что вы говорите, но поможет некоторым быть действительно откровенным. Другие ответы близки к этому, но я думал, что ваш лучше.Maven организует его сборку в проектах.
artifact
В мавена является ресурсом , порожденным проектом Maven. У каждого проекта maven может быть ровно одинartifact
такойjar, war, ear
, как a и т. Д.Файл конфигурации проекта
"pom.xml"
описывает, как создается артефакт, как выполняются модульные тесты и т. Д. Обычно сборка программного проекта с maven состоит из многих maven-проектов, которые создают артефакты (например, jars ) которые составляют продукт.Например
Maven артефакты не ограничиваются ресурсами Java. Вы можете создать любой ресурс, который вам нужен. Например, документация, проект-сайт, zip-архивы, native-библиотеки и т. Д.
Каждый проект maven имеет уникальный идентификатор
[groupId, artifactId, version]
. Когда для проекта maven требуются ресурсы другого проекта, в нем настраивается зависимость сpom.xml
использованием вышеуказанного идентификатора. Затем Maven автоматически разрешает зависимости при запуске сборки. Затем артефакты требуемых проектов загружаются либо из локальногоrepository
каталога, который является простым каталогом в доме вашего пользователя, либо из других (удаленных) репозиториев, указанных вамиpom.xml
.источник
Q. Что такое Артефакт в Maven?
ОТВЕТ: ARTIFACT - это JAR (WAR или EAR), но это может быть и что-то еще. Каждый артефакт имеет,
Три вместе однозначно идентифицируют артефакт.
В. Почему Мейвен нуждается в них?
Ответ: Maven используется, чтобы сделать их доступными для наших приложений.
источник
-DartifactId=YOUR_ARTIFACT_ID
при запуске mvn install, просто предложение :)Артефакт - это JAR или что-то, что вы храните в репозитории. Maven получает их и создает ваш код.
источник
Для maven, процесс сборки организован как набор артефактов. Артефакты включают в себя:
Артефакты живут в репозиториях.
источник
обычно мы говорим о терминологии Maven о идентификаторе группы, идентификаторе артефакта и версии моментального снимка
Идентификатор группы: идентификация группы проекта. Идентификатор артефакта: идентификация проекта. Снимок версии: версия, используемая проектом.
Артефакт - это не что иное, как результирующий файл, такой как Jar, War, Ear ....
просто говорит, что артефакты - это не что иное, как пакеты.
источник