Devo escrever repositórios no meu pom?xml?

Sou novo na Maven. Se eu começar um novo projeto com Maven, devo conhecer algum repositório URLs para que ele funcione?

por exemplo, este tutorial hibernado http://docs.jboss.org/hibernate/core/3.3/reference/en/html/tutorial.html diz como criar um projecto de amostra com pom.texto xml. Mas este pom.o xml não contém repositórios.

por isso, o meu 'plugin' do m2eclipse diz, por exemplo Project build error: 'dependencies.dependency.version' for org.hibernate:hibernate-core:jar is missing., para todas as marcas de dependências no pom.xml

Isto é porque ... de ausência de repositórios?

Onde conhecer os URLs dos repositórios? Existe um grande repositório? Por que não é incluído por padrão?

actualizar 1 Diz-se aqui que o Maven deve usar o repositório "central" por padrão: http://maven.apache.org/guides/introduction/introduction-to-repositories.html

Procurei lá por um artefacto hibernado e encontrei-o. Então, este artefacto está no repositório central. Pelo meu maven diz que a dependência não foi encontrada. Daí não usa o repositório central. Por quê?

Author: Dims, 2012-01-19

2 answers

Aparentemente falta a tua dependência Hibernada <version> Marca:

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-entitymanager</artifactId>
    <version>3.6.9.Final</version> <!-- this line is missing -->
</dependency>

Lembre-se que não tem de especificar a versão das dependências anteriormente declaradas em <dependencyManagement>.

Resposta Antiga:

Cada escrita de compilação (não só com o Maven) deve ser reprodutível e independente do ambiente. pom padrão.xml (chamado super pom ), do qual cada pom.xml herda, já define o principal repositório central Maven:

<repositories>
  <repository>
    <id>central</id>
    <name>Maven Repository Switchboard</name>
    <layout>default</layout>
    <url>http://repo1.maven.org/maven2</url>
    <snapshots>
      <enabled>false</enabled>
    </snapshots>
  </repository>
</repositories>

Tu não tens para definir este repositório e você não tem que definir quaisquer outros se todas as suas dependências estão lá. Por outro lado, se você estiver usando alguns repositórios externos, Você deve adicioná-los a pom.xml, para que cada desenvolvedor seja sempre capaz de construir.

O ponto final é: se você pode construir o projeto com um repositório completamente vazio, o seu pom.xml está bem.

 17
Author: Tomasz Nurkiewicz, 2012-01-19 21:00:01

Não é aconselhável definir repositórios em arquivos POM como isso causa um monte de problemas (Maven vai procurar esses repositórios para qualquer artefato mesmo os disponíveis na Central, portabilidade ruim, ...)

Best approach: Configure um gestor de repositório (Artifactory, Nexus) e edite as suas configurações.ficheiro xml para usar o Gestor de repo como um espelho.

Segunda melhor abordagem: Defina os repositórios necessários na sua configuração.ficheiro xml, não no seu pom.xml arquivo.

Repositórios em poms é uma má ideia.

 3
Author: Agustí Sánchez, 2014-09-04 13:27:53