Devo escrever repositórios no meu pom?xml?
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
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ê?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.
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.