btw Você pode ver o glossário oficial do Apache Maven para a definição de um artefato
informatik01
11
Nenhuma dessas respostas está completa. Você pode ver isso apenas navegando no repositório Maven . Um artefato é aparentemente um diretório que satisfaz algumas restrições, por exemplo, deve conter um arquivo chamado maven-metadata.xmle um arquivo chamado <artifactId>-<version>.pom. Ambos os arquivos têm algum esquema e semântica não documentados.
Jameshfisher
Respostas:
303
Um artefato é um arquivo, geralmente um JAR, que é implementado em um repositório Maven.
Uma construção do Maven produz um ou mais artefatos, como um JAR compilado e um JAR de "origem".
Cada artefato possui um ID de grupo (geralmente um nome de domínio invertido, como com.example.foo), um ID de artefato (apenas um nome) e uma sequência de versões. Os três juntos identificam exclusivamente o artefato.
As dependências de um projeto são especificadas como artefatos.
Um artefato é basicamente um arquivo JAR? Então, o arquivo jar do tempo do joda pode ser chamado de artefato joda, o jar do hibernate pode ser chamado de artefato do hibernate, etc?
David blaine
47
Pense no que realmente é um artefato. Os egípcios criaram artefatos maravilhosos, como cerâmica. Mas, se você estivesse segurando uma tigela egípcia na mão, não a referiria como um "artefato", a menos que estivesse discutindo o fato de que é um artefato (fato). Você se referiria a ele como uma tigela. Eles comeram fora da tigela. Eles não comeram fora do artefato.
cbmeeks
3
Eu acho que o @cbmeeks está chegando é que "artefato" não é um nome para uma "coisa", é um papel no processo de compilação. Qualquer coisa pode ser classificada como um "artefato" se o Maven o produzir e receber coordenadas especiais do Maven para identificá-lo.
Garret Wilson
Se eu tiver algo chamado "com.example: mylibrary: 1.0.0" (groupId: artifactId: version), que consiste em um jar, um pom e um jar de origem, qual dos seguintes itens é um artefato: 1. cada arquivo (pom, jar, jar de origem) é um artefato separado; 2. o conjunto de arquivos que compartilham o mesmo (groupId: artifactId: version) compõe um único artefato; 3. algo mais?
Laurence Gonsalves
Você não explica como obter o groupid e o artefato com o nome da classe. Downvote
Philip Rego
114
Em termos gerais de software, um " artefato " é algo produzido pelo processo de desenvolvimento de software, seja uma documentação relacionada ao software ou um arquivo executável.
Na terminologia Maven, o artefato é a saída resultante da compilação Maven, geralmente uma jarou wararquivo ou outro executável. Os artefatos no maven são identificados por um sistema de coordenadas de groupId, artifactId e version. Maven usa o groupId, artifactIde versionpara identificar dependências (geralmente outros arquivos JAR) necessários para construir e executar o seu código.
Meu livro diz que "o artefato principal desse aplicativo online será uma classe Java chamada Usuário, que será" ... É o mesmo que o artefato que você mencionou?
David blaine
@davidblaine - não exatamente, essa frase usa a palavra em um sentido mais geral.
Ken Liu
27
Eu sei que esse é um tópico antigo, mas eu queria adicionar algumas nuances.
Existem artefatos do Maven, artefatos do gerenciador de repositório e outros Artifact.
Um artefato do Maven é exatamente o que outros comentadores / respondentes dizem: é algo que é cuspido na construção de um projeto do Maven. Pode ser um .jararquivo, ou um .wararquivo, ou um .ziparquivo, ou um .dll, ou o que você tem.
Um artefato do gerenciador de repositório é algo que é, bem, gerenciado por um gerenciador de repositório. Um gerenciador de repositório é basicamente um serviço de nomeação de alto desempenho para executáveis e bibliotecas de software. Um gerenciador de repositório não se importa de onde vêm seus artefatos (talvez eles venham de uma compilação Maven, ou um arquivo local, ou uma compilação Ant, ou uma compilação manual ...).
Um Maven Artifacté uma classe Java que representa o tipo de "nome" desreferenciado por um gerenciador de repositório em um artefato do gerenciador de repositório. Quando usado neste sentido, um Artifacté apenas um nome glorificado composta de peças como groupId, artifactId, version, scope, classifiere assim por diante.
Para juntar tudo:
Seu projeto Maven provavelmente depende de vários Artifacts por meio de seus <dependency>elementos.
O Maven interage com um gerenciador de repositório para resolver esses Artifacts em arquivos, instruindo o gerenciador de repositório a enviar alguns artefatos do gerenciador de repositório que correspondam aos Artifacts internos .
Finalmente, após a resolução, o Maven cria seu projeto e produz um artefato do Maven. Você pode optar por "transformar isso em" um artefato gerente de repositório, por sua vez, usando qualquer ferramenta que você gosta, enviá-lo para o gerente de repositório com informação de coordenação suficiente para que outras pessoas possam encontrá-lo quando eles pedir ao gerente repositório para ele.
+1 para novas informações sobre tópicos antigos, obrigado! Corrija o erro de digitação "repoository", embora às vezes cocô possa ser a palavra certa haha ... todo mundo está dizendo que "artefato" é o jar real, pode ser útil atualizar sua resposta para mostrar que, ao usar, por exemplo mvn install, as pessoas são tentando descobrir o que colocar nessa entrada. Portanto, o nome completo do jar é o que você deve digitar -DartifactId=YOUR_ARTIFACT_ID, certo? O nome completo do arquivo jar com a versão e .jar? Parece ser o que você está dizendo, mas ajudaria alguns a serem realmente explícitos. Outras respostas se aproximam disso, mas achei a sua melhor.
JimLohse
23
Maven organiza sua construção em projetos.
Um artifactmaven é um recurso gerado por um projeto maven. Cada projeto maven pode ter exatamente um artifactcomo um jar, war, ear, etc.
O arquivo de configuração do projeto "pom.xml"descreve como o artefato é construído, como os testes de unidade são executados etc. Geralmente, uma construção de projeto de software com maven consiste em muitos projetos de maven que constroem artefatos (por exemplo, jarros ) que constituem o produto.
Por exemplo
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
Os artefatos do Maven não se limitam aos recursos java. Você pode gerar qualquer recurso necessário. Por exemplo, documentação, site do projeto, arquivos zip, bibliotecas nativas, etc.
Cada projeto maven possui um identificador exclusivo constituído por [groupId, artifactId, version]. Quando um projeto maven requer recursos de outro projeto, uma dependência é configurada, pom.xmlusando o identificador mencionado acima. O Maven resolve automaticamente as dependências quando uma compilação é acionada. Os artefatos dos projetos necessários são carregados do local repository, que é um diretório simples na página inicial do usuário ou de outros repositórios (remotos) especificados em você pom.xml.
Resposta agradável, como eu comentei em outra resposta , torná-lo explícito o que devemos digitar em -DartifactId=YOUR_ARTIFACT_IDquando executar mvn instalar, apenas uma sugestão :)
JimLohse
@ JimLohse obrigado, por favor, sinta-se livre para adicionar o título "edit" :)
VdeX 17/17/17
9
Um artefato é um JAR ou algo que você armazena em um repositório. Maven os tira e cria seu código.
maven-metadata.xml
e um arquivo chamado<artifactId>-<version>.pom
. Ambos os arquivos têm algum esquema e semântica não documentados.Respostas:
Um artefato é um arquivo, geralmente um JAR, que é implementado em um repositório Maven.
Uma construção do Maven produz um ou mais artefatos, como um JAR compilado e um JAR de "origem".
Cada artefato possui um ID de grupo (geralmente um nome de domínio invertido, como com.example.foo), um ID de artefato (apenas um nome) e uma sequência de versões. Os três juntos identificam exclusivamente o artefato.
As dependências de um projeto são especificadas como artefatos.
fonte
Em termos gerais de software, um " artefato " é algo produzido pelo processo de desenvolvimento de software, seja uma documentação relacionada ao software ou um arquivo executável.
Na terminologia Maven, o artefato é a saída resultante da compilação Maven, geralmente uma
jar
ouwar
arquivo ou outro executável. Os artefatos no maven são identificados por um sistema de coordenadas de groupId, artifactId e version. Maven usa ogroupId
,artifactId
eversion
para identificar dependências (geralmente outros arquivos JAR) necessários para construir e executar o seu código.fonte
Eu sei que esse é um tópico antigo, mas eu queria adicionar algumas nuances.
Existem artefatos do Maven, artefatos do gerenciador de repositório e outros
Artifact
.Um artefato do Maven é exatamente o que outros comentadores / respondentes dizem: é algo que é cuspido na construção de um projeto do Maven. Pode ser um
.jar
arquivo, ou um.war
arquivo, ou um.zip
arquivo, ou um.dll
, ou o que você tem.Um artefato do gerenciador de repositório é algo que é, bem, gerenciado por um gerenciador de repositório. Um gerenciador de repositório é basicamente um serviço de nomeação de alto desempenho para executáveis e bibliotecas de software. Um gerenciador de repositório não se importa de onde vêm seus artefatos (talvez eles venham de uma compilação Maven, ou um arquivo local, ou uma compilação Ant, ou uma compilação manual ...).
Um Maven
Artifact
é uma classe Java que representa o tipo de "nome" desreferenciado por um gerenciador de repositório em um artefato do gerenciador de repositório. Quando usado neste sentido, umArtifact
é apenas um nome glorificado composta de peças comogroupId
,artifactId
,version
,scope
,classifier
e assim por diante.Para juntar tudo:
Artifact
s por meio de seus<dependency>
elementos.Artifact
s em arquivos, instruindo o gerenciador de repositório a enviar alguns artefatos do gerenciador de repositório que correspondam aosArtifact
s internos .Espero que ajude.
fonte
mvn install
, as pessoas são tentando descobrir o que colocar nessa entrada. Portanto, o nome completo do jar é o que você deve digitar-DartifactId=YOUR_ARTIFACT_ID
, certo? O nome completo do arquivo jar com a versão e .jar? Parece ser o que você está dizendo, mas ajudaria alguns a serem realmente explícitos. Outras respostas se aproximam disso, mas achei a sua melhor.Maven organiza sua construção em projetos.
Um
artifact
maven é um recurso gerado por um projeto maven. Cada projeto maven pode ter exatamente umartifact
como umjar, war, ear
, etc.O arquivo de configuração do projeto
"pom.xml"
descreve como o artefato é construído, como os testes de unidade são executados etc. Geralmente, uma construção de projeto de software com maven consiste em muitos projetos de maven que constroem artefatos (por exemplo, jarros ) que constituem o produto.Por exemplo
Os artefatos do Maven não se limitam aos recursos java. Você pode gerar qualquer recurso necessário. Por exemplo, documentação, site do projeto, arquivos zip, bibliotecas nativas, etc.
Cada projeto maven possui um identificador exclusivo constituído por
[groupId, artifactId, version]
. Quando um projeto maven requer recursos de outro projeto, uma dependência é configurada,pom.xml
usando o identificador mencionado acima. O Maven resolve automaticamente as dependências quando uma compilação é acionada. Os artefatos dos projetos necessários são carregados do localrepository
, que é um diretório simples na página inicial do usuário ou de outros repositórios (remotos) especificados em vocêpom.xml
.fonte
P. O que é Artefato no maven?
ANS: ARTIFACT é um JAR (WAR ou EAR), mas também pode ser outra coisa. Cada artefato possui,
Os três juntos identificam exclusivamente o artefato.
P. Por que o Maven precisa deles?
Resp: Maven é usado para disponibilizá-los para nossos aplicativos.
fonte
-DartifactId=YOUR_ARTIFACT_ID
quando executar mvn instalar, apenas uma sugestão :)Um artefato é um JAR ou algo que você armazena em um repositório. Maven os tira e cria seu código.
fonte
Para preparar, o processo de construção é organizado como um conjunto de artefatos. Os artefatos incluem:
Os artefatos vivem em repositórios.
fonte
normalmente estamos falando da terminologia do Maven sobre o ID do grupo, o ID do artefato e a versão do instantâneo
ID do grupo: identidade do grupo do projeto ID do artefato: identidade do projeto Versão da captura instantânea: a versão usada pelo projeto.
O artefato nada mais é do que um arquivo resultante como Jar, War, Ear ....
simplesmente diz que Artefatos nada mais são que pacotes.
fonte