Maven Impossibile risolvere le dipendenze, non è stato possibile risolvere gli artefatti


132

Questo dovrebbe essere un progetto funzionante dal mio amico. Ha dimostrato il progetto proprio di fronte a me, quindi ho copiato il progetto, importato come progetto maven esistente (sto usando il m2eclipseplugin).

E quindi, si verifica questo errore. Questo errore può essere riprodotto ogni volta che provo a creare qualcosa con Maven.

Fare la dipendenza mvn: tree, dependency: list o il solito pacchetto build, comporterà lo stesso errore.

L'errore dall'esecuzione della build del 'pacchetto' da eclipse è:

[INFO] Scanning for projects...
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building Jackpot Portal Webapp 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[WARNING] The POM for javax.servlet:com.springsource.javax.servlet:jar:2.5.0 is missing, no dependency information available
[WARNING] The POM for javax.servlet:com.springsource.javax.servlet.jsp.jstl:jar:1.2.0 is missing, no dependency information available
[WARNING] The POM for javax.transaction:com.springsource.javax.transaction:jar:1.1.0 is missing, no dependency information available
[WARNING] The POM for org.slf4j:com.springsource.slf4j.log4j:jar:1.5.6 is missing, no dependency information available
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.963s
[INFO] Finished at: Tue Jan 11 01:55:41 WIT 2011
[INFO] Final Memory: 2M/56M
[INFO] ------------------------------------------------------------------------

[ERROR] Failed to execute goal on project jackpot: Could not resolve dependencies 
for project com.jeteo:jackpot:war:1.0-SNAPSHOT: The following artifacts could 
not be resolved: javax.servlet:com.springsource.javax.servlet:jar:2.5.0,
javax.servlet:com.springsource.javax.servlet.jsp.jstl:jar:1.2.0, 
javax.transaction:com.springsource.javax.transaction:jar:1.1.0, 
org.slf4j:com.springsource.slf4j.log4j:jar:1.5.6: Failure to find 
javax.servlet:com.springsource.javax.servlet:jar:2.5.0 in 
http://repository.springsource.com/maven/bundles/release was cached in the 
local repository, resolution will not be reattempted until the update 
interval of com.springsource.repository.bundles.release has elapsed or 
updates are forced -> [Help 1]

[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException

Ed ecco il contenuto di pom.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.jeteo</groupId>
    <artifactId>jackpot</artifactId>
    <packaging>war</packaging>
    <version>1.0-SNAPSHOT</version>
    <name>Jackpot Portal Webapp</name>
    <url>http://www.jeteo.com</url>
    <properties>
        <java-version>1.6</java-version>
        <org.springframework-version>3.0.3.RELEASE</org.springframework-version>
        <org.hibernate-version>3.6.0.Final</org.hibernate-version>
        <org.aspectj-version>1.6.9</org.aspectj-version>
        <org.slf4j-version>1.5.10</org.slf4j-version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${org.springframework-version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-orm</artifactId>
            <version>${org.springframework-version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>${org.springframework-version}</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.8.1</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>net.sf.jt400</groupId>
            <artifactId>jt400</artifactId>
            <version>6.6</version>
            <scope>compile</scope>
        </dependency>

        <!-- Hibernate -->
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>${org.hibernate-version}</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-entitymanager</artifactId>
            <version>${org.hibernate-version}</version>
            <scope>compile</scope>
        </dependency>

        <!-- AspectJ -->
        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjrt</artifactId>
            <version>${org.aspectj-version}</version>
        </dependency>
        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjtools</artifactId>
            <version>${org.aspectj-version}</version>
        </dependency>

        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>com.springsource.javax.servlet</artifactId>
            <version>2.5.0</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>com.springsource.javax.servlet.jsp.jstl</artifactId>
            <version>1.2.0</version>
            <scope>provided</scope>
        </dependency>
        <!--
        <dependency>
         <groupId>javax.persistence</groupId>
         <artifactId>com.springsource.javax.persistence</artifactId>
         <version>1.0.0</version>
         <scope>compile</scope>
        </dependency>
        -->
        <dependency>
            <groupId>javax.transaction</groupId>
            <artifactId>com.springsource.javax.transaction</artifactId>
            <version>1.1.0</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.5.6</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>com.springsource.slf4j.log4j</artifactId>
            <version>1.5.6</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.11</version>
            <type>jar</type>
            <scope>compile</scope>
        </dependency>

    </dependencies>
    <repositories>
        <!-- Spring releases -->
        <repository>
            <id>com.springsource.repository.bundles.release</id>
            <name>Spring Maven Repository Repository</name>
            <url>http://repository.springsource.com/maven/bundles/release</url>
        </repository>
        <!-- For hibernate 3.6 support -->
        <repository>
            <id>jboss</id>
            <url>https://repository.jboss.org/nexus/content/groups/public/</url>
        </repository>
    </repositories>
    <build>
        <finalName>jackpot</finalName>
        <plugins>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>tomcat-maven-plugin</artifactId>
                <version>1.1</version>
                <configuration>
                    <url>http://localhost:8080/manager</url>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.0.2</version>
                <configuration>
                    <source>1.6</source>
                    <target>1.6</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

Ho provato a scaricare la versione più recente di Maven e l'ho inclusa nell'Helios Eclipse, ma lo stesso problema è ancora. Lo stesso messaggio di errore si verifica anche quando lo eseguo nella riga di comando della shell (eclissi esterna).

Cosa mi sto perdendo?


vedere il tuo percorso nella variabile di sistema. Nel mio caso il percorso per maven 3 era corretto nella variabile utente ma dopo aver cambiato il percorso a maven 2 nella variabile di sistema funzionava bene. Non ho idea del perché
aastha

Risposte:


91

Sembra che ti manchino alcuni repository Maven. Chiedi quello del tuo amico .m2/settings.xmle probabilmente vorrai aggiornare il POM per includere lì i repository.

--edit: dopo un po 'di googling veloce, prova ad aggiungere questo al tuo POM:

<repository>
    <id>com.springsource.repository.bundles.release</id>
    <name>SpringSource Enterprise Bundle Repository - SpringSource Bundle Releases</name>
    <url>http://repository.springsource.com/maven/bundles/release</url>
</repository>
<repository>
    <id>com.springsource.repository.bundles.external</id>
    <name>SpringSource Enterprise Bundle Repository - External Bundle Releases</name>
    <url>http://repository.springsource.com/maven/bundles/external</url>
</repository>

5
Grazie ! Il mio amico ha detto che ha funzionato sul suo laptop perché ha già le dipendenze memorizzate nella cache in .m2 / e maven non prova più a scaricarle. E ha condiviso le voci del repository, alcune sono come le tue scoperte, e ora ha funzionato bene ora. Grazie per il tuo tempo! E se posso sapere quali parole chiave usi per scoprire quali repository usare? Ho provato a cercare su google anche ieri, ma sono finito miseramente. haha
bertie l'

6
Sapevo che si trattava di un problema di repository a causa dei messaggi di avviso "Manca POM per xxx". Quindi ho appena cercato "Springsource maven" e ho trovato le FAQ sul progetto di Springsource e la sua voce per impostarlo per lavorare con Maven.
wmorrell,

Il suo primo errore artefatto è un com fornito jar com.springsource.javax.servlet. Se viene fornito, perché dovrebbe avere qualcosa a che fare con setting.xml?
Philip Rego,

@PhilipRego .m2/settings.xmlpuò specificare elenchi di repository al di fuori di quelli standard su repo.maven.apache.org. In questo caso, i JAR provengono da un repository SpringSource e non si trovano su Maven Central. Avevo supposto che l'amico avesse i repository SpringSource elencati in locale .m2/settings.xml, senza causare errori di ricerca perché gli artefatti sarebbero stati trovati in repository di maven alternativi. Invece, i JAR sono stati memorizzati nella cache e non sono state eseguite ricerche.
wmorrell,

1
@PhilipRego Queste dipendenze non sono contrassegnate come fornite. Anche se viene fornita la dipendenza, le definizioni dell'interfaccia sono necessarie per compilare il codice; ciò significa che è necessario disporre dei file JAR che definiscono le interfacce utilizzate. Tutto ciò che significa per una dipendenza fornita è che i JAR non sono impacchettati con il tuo codice.
wmorrell,

15

Maven ha tenuto i tuoi file nella cache e non riprovare a scaricarli. Puoi semplicemente 'aiutarlo' manualmente eliminando la directory .m2, e quindi il nostro amico scaricherà tutto sulle vecchie dipendenze.


7

Come fonte alternativa allo stesso problema, questa risposta cita l'utilizzo di Maven 3 rispetto a Maven 2 come potenziale causa di questo problema. Per quanto posso dire, ciò è dovuto ai cambiamenti nella risoluzione del repository locale che è stata modificata in Maven 3. Mettendo questo qui nel caso in cui qualcun altro lo cerchi e raggiunga questa risposta (come ho fatto io).


7

Le artifactIdper tutte le dipendenze che non sono riuscite a scaricare sono errate - per qualche motivo hanno il prefisso com.springsource. Taglia / incolla problema?

Puoi provare a sostituirli come segue.

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>jstl</artifactId>
    <version>1.2.0</version>
    <scope>provided</scope>
</dependency>
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>servlet-api</artifactId>
    <version>2.5</version>
    <scope>provided</scope>
</dependency>
<dependency>
    <groupId>javax.transaction</groupId>
    <artifactId>jta</artifactId>
    <version>1.1.0</version>
</dependency>
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
    <version>1.5.6</version>
</dependency>

Potresti anche voler aggiungere il repository centrale maven per questi artefatti nel caso in cui non siano disponibili nei repository specificati.

<repository>
    <id>maven2</id>
    <url>http://repo1.maven.org/maven2</url>
</repository>

Ci ho provato, e ancora sbagliato? Ecco l'output parziale di eclipse dopo aver eseguito un'attività pacchetto: Impossibile eseguire l'obiettivo sul jackpot del progetto: Impossibile risolvere le dipendenze per il progetto com.jeteo: jackpot: war: 1.0-SNAPSHOT: I seguenti artefatti non possono essere risolti: javax.servlet: servlet-api: jar: 2.5.0, javax.servlet: jstl: jar: 1.2.0, javax.transaction: jta: jar: 1.1.0: Impossibile trovare javax.servlet: servlet-api: jar: 2.5.0 in repository.springsource.com/maven/bundles/release è stato memorizzato nella cache nel repository locale, la risoluzione non verrà ritentata fino all'intervallo di aggiornamento di <cutted> ....
bertie,

@Albert Kam. Risposta aggiornata per includere il riferimento al repository centrale maven per i manufatti mancanti
Raghuram,

Il prefisso com.springsource indica che i manufatti provengono dal repository enterprise di primavera
eis,

5

Scarica il jar manualmente e quindi esegui il comando dalla cartella in cui è salvato il jar:

mvn install:install-file -Dfile=*jar_file_name*.jar-DgroupId=*group_id* -DartifactId=*artifact_id* -Dversion=*version_no* -Dpackaging=jar

Il jar file, jar_file_name, group_id, artifact_ide version_nosono disponibili dalla pagina repository Maven.


4

Ho avuto un problema simile e l'ho risolto aggiungendo i seguenti repository nel mio pom.xml:

<repository>
    <id>org.springframework.maven.release</id>
    <name>Spring Maven Release Repository</name>
    <url>http://repo.springsource.org/libs-release-local</url>
    <releases><enabled>true</enabled></releases>
    <snapshots><enabled>false</enabled></snapshots>
</repository>
<!-- For testing against latest Spring snapshots -->
<repository>
    <id>org.springframework.maven.snapshot</id>
    <name>Spring Maven Snapshot Repository</name>
    <url>http://repo.springsource.org/libs-snapshot-local</url>
    <releases><enabled>false</enabled></releases>
    <snapshots><enabled>true</enabled></snapshots>
</repository>
<!-- For developing against latest Spring milestones -->
<repository>
    <id>org.springframework.maven.milestone</id>
    <name>Spring Maven Milestone Repository</name>
    <url>http://repo.springsource.org/libs-milestone-local</url>
    <snapshots><enabled>false</enabled></snapshots>
</repository>

4
mvn clean install -U

Risolto il mio problema Dato che i repository sono stati memorizzati nella cache, ho dovuto forzarlo per ottenere l'ultima versione.


1

Ho un messaggio simile e il mio problema erano alcune preferenze proxy nel mio settings.xml. Quindi li ho disabilitati e tutto funziona bene.


1

Questo tipo di problemi sono causati da due motivi:

  1. l'incantesimo di una dipendenza è sbagliato
  2. la configurazione delle impostazioni mvn (es. ~ / .m2 / settings.xml) è errata

Se è possibile scaricare la maggior parte delle dipendenze, il motivo 1 potrebbe essere il bug più probabile. Al contrario, se la maggior parte delle dipendenze ha il problema, allora dovresti dare un'occhiata a settings.xml .

Bene, ho provato a risolvere il mio problema per tutto il pomeriggio, e finalmente l'ho capito. Il mio problema si verifica in settings.xml, non nella perdita o ortografia errata di settings.xml , ma nella perdita di activeProfiles .


0

Ho avuto questo problema Nel mio caso è stato causato da IntelliJ Idea che si è dato da fare con alcuni dei file pom.xml (cosa che sembra piacere fare!). Sono appena tornato alla copia originale e le cose hanno funzionato di nuovo!


0

Ho avuto anche questo problema, è risultato che NetBeans ha aggiunto qualcosa al mio file pom.xml. Controlla che non sia stato aggiunto nulla dalle precedenti distribuzioni riuscite.


0

Il mio progetto EAR aveva 2 moduli * .ear e * .war e ho riscontrato questo errore di dipendenza dal *.warprogetto durante il tentativo mvn eclipse:eclipse. Risolto risolvendo il problema di codifica utf-8 nel *.warprogetto. mvn -Xo le -eopzioni non sono state di aiuto qui.


0

Si scopre che è successo a causa del firewall sul mio computer. Disattivarlo ha funzionato per me.


1
Mentre lo spegnimento del firewall sul tuo computer potrebbe funzionare, a seconda della configurazione della tua rete, consiglierei di cercare una soluzione più sicura, ad esempio aggiungendo un'eccezione per il processo di maven o centrale centrale ... Sembra una configurazione del firewall non configurata correttamente / io però
Capricorno

@Capricorn giusto, questo non è il massimo, ma per me ho provato tutte le soluzioni consigliate e funziona bene su questo. Se hai qualche soluzione migliore, per favore dimmi, grazie !!! a cura di: hai menzionato "l'aggiunta di un'eccezione per il processo di Maven o Maven Central", non capisco davvero, puoi specificare questi ...
Duc Thanh,

0

Si sono imbattuti in questo problema. La causa principale è la cartella .m2. Devi assicurarti che tutto ciò a cui stai tentando di accedere sia presente nella tua cartella .m2 (questo è il tuo repository locale). Se la roba è lì, allora sei a posto. Questo di solito è presente all'interno della cartella degli utenti sul tuo sistema (sia esso mac / linux o anche windows)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.