2012-01-21 14 views
6

Sono nuovo di Maven e sto provando a configurare uno dei miei primi POM s. La mia applicazione effettuerà il caching utilizzando EhCache. Andando a Maven centrale Repo (link here) copio-n-incollato il tag <dependency> e copiarlo nella mia pom.xml in questo modo:Errore Maven quando si risolve la dipendenza

...many dependencies above this point 
<dependency> 
    <scope>compile</scope> 
    <groupId>org.hibernate</groupId> 
    <artifactId>hibernate-entitymanager</artifactId> 
    <version>4.0.1.Final</version> 
</dependency> 
<dependency> 
    <scope>compile</scope> 
    <groupId>net.sf.ehcache</groupId> 
    <artifactId>ehcache</artifactId> 
    <version>2.5.0</version> 
</dependency> 
<dependency> 
    <scope>compile</scope> 
    <groupId>jasperreports</groupId> 
    <artifactId>jasperreports</artifactId> 
    <version>3.5.3</version> 
</dependency> 
...many dependencies below this point 

Dopo aver salvato le modifiche, Eclipse costruisce lo spazio di lavoro e mi dà un errore il tag di apertura <dependency> per EHCache 2.5:

mancante artefatto net.sf.ehcache: EHCache: vaso: 2.5.0

così ho pensato che forse v.2.5.0 ha qualcosa che non va w con esso, e ripetuto lo stesso per 2.4.7 (l'ultima versione 2.4.x prima dello 2.5.0). Stesso affare.

Dato che sono così nuovo per Maven, non so nemmeno da dove cominciare a cercare. Ho provato Project >> Clean e ho riavviato anche Eclipse per vedere se era solo una tipica "stranezza" di Eclipse. No.

Sto pensando:

  • Potrebbe EHCache pubblicherà cattivi JAR per il repo Maven?
  • Potrebbe Maven Repo avere qualcosa di sbagliato con esso?
  • Ciò potrebbe essere dovuto a qualche altra configurazione errata nel mio pom.xml?
  • Potrebbe essere un problema "JAR hell" dove ho un conflitto da qualche parte sul grafico delle dipendenze?

In che modo SO inizierà a risolvere questo problema? Grazie in anticipo!

+0

C'è un modo per reimportare le dipendenze in Eclipse? Controlla anche il tuo repository locale per vedere se è lì; magari provare anche un Maven da riga di comando. Il vaso stesso va bene; appena creato un progetto che lo utilizza. –

risposta

8

Di solito è più sicuro fare riferimento a search.maven.org. Dipendenza da lì:

<dependency> 
    <groupId>net.sf.ehcache</groupId> 
    <artifactId>ehcache</artifactId> 
    <version>2.5.0</version> 
    <type>pom</type> 
</dependency> 

Tipo di mente pom. Da pom del modulo:

Questo è un artefatto pom per tirare in EHCache-core e EHCache-cotto per il clustering. Assicurati di impostare 'tipo' su 'pom' nella tua dipendenza.

A volte quando qualcuno non ha bisogno di terracotta, ehcache-core funzionerà perfettamente come altri stati di risposta.

+1

Probabilmente vorrai ehcache-core. ehcache al momento è un artefatto genitore, questo non ti farebbe avere quello che vuoi. –

+0

@AlexSnaps in effetti lo fa, è un artefatto di tipo pom pomerale per tirare dentro barattoli. – mrembisz

+0

Sì, sembra che qualcosa sia cambiato in 2.5 vs 2.4 a quanto pare. Scusate. –

0

L'ho lasciato in IntelliJ e l'ho trovato. Sospetto che ci sia qualcosa di sbagliato nelle tue impostazioni. Prova a creare un progetto con solo questa dipendenza in esso. Se non riesce a scaricare, vorrei controllare le impostazioni. per esempio. .m2/settings.xml Stai usando un server Nexus o un proxy/cache Maven?

BTW: Un modo più semplice per cercare JAR è utilizzare http://mvnrepository.com/ che troverà tutte le versioni disponibili e mostrerà l'XML che è necessario aggiungere.

8

Utilizzano ehcache-corein the official documentation. Maven Central does not have a jar artifact per ehcache 2.5 che spiega il tuo messaggio di errore.

Utilizzando ehcache-core cambia la dipendenza a:

<dependency> 
    <groupId>net.sf.ehcache</groupId> 
    <artifactId>ehcache-core</artifactId> 
    <version>2.5.0</version> 
</dependency> 

che scarica con successo sulla mia macchina (ehcache non fa).

+1

In realtà questo è da pom per ehcache (senza -core): questo è un artefatto pom per estrarre ehcache-core ed ehcache-terracotta per il clustering. Assicurati di impostare 'tipo' su 'pom' nella tua dipendenza. – mrembisz

+1

@mrembisz hai ragione, grazie per averlo indicato - la mia analisi era sbagliata. La dipendenza tuttavia si applica anche se si utilizza ehcache-core senza il materiale in terracotta. Come sottolineato, lo fanno in questo modo nel manuale ufficiale di ehcache. –

+0

Sì, sono d'accordo ehcache-core è sufficiente in molti casi. – mrembisz

Problemi correlati