2011-01-10 17 views
85

Se supone que es un proyecto de trabajo de mi amigo. Demostró el proyecto justo delante de mí, y luego copié el proyecto, lo importé como un proyecto existente de maven (estoy usando el plugin m2eclipse).Maven No se pudieron resolver las dependencias, los artefactos no se pudieron resolver

Y a continuación, se produce este error. Este error se puede reproducir cada vez que intento construir algo con maven.

Hacer la dependencia de mvn: tree, dependency: list, o el paquete de construcción habitual, dará como resultado el mismo error.

El error se ejecute el 'paquete' construir a partir de eclipse es:

[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 

Y aquí es el contenido de la pom.xml:

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> 

He intentado descargar la versión más reciente de maven, y lo incluyó en el eclipse helios, pero sigue siendo el mismo problema. El mismo mensaje de error ocurre incluso cuando lo ejecuto en la línea de comandos del shell (fuera de eclipse).

¿Qué me estoy perdiendo?

Respuesta

68

Parece que se han perdido algunos repositorios de Maven. Pregunta por el .m2/settings.xml de tu amigo, y probablemente quieras actualizar el POM para incluir los repositorios allí.

--edit: después de algunas google rápida, trate de añadir esto a su 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

¡Gracias! Mi amigo mencionó que funcionó en su computadora portátil porque ya tenía las dependencias almacenadas en caché en .m2/y maven ya no intenta descargarlas. Y compartió las entradas del repositorio, algunas son como su hallazgo, y ahora funcionaba bien ahora ... ¡Gracias por su tiempo! Y si puedo saber, ¿qué palabras clave usas para descubrir qué repositorios usar? Intenté buscar en Google también ayer, pero terminé miserable. jaja – bertie

+6

Sabía que era un problema de repositorio debido a los mensajes de advertencia "POM for xxx is missing". Así que solo busqué en "springsource maven" y saqué las preguntas frecuentes del proyecto springsource y su entrada para configurarlo para que funcione con Maven. – wmorrell

3

El artifactId para todas las dependencias que no pudo descargar son incorrectos - por alguna razón que tienen el prefijo com.springsource. ¿Cortar/pegar problema?

Puede intentar reemplazarlos de la siguiente manera.

 <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> 

También puede querer añadir el repositorio central de Maven para estos artefactos en caso de que no están disponibles en los repositorios especificados.

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

Lo intenté, ¿y aún errornous? Aquí está la salida parcial de Eclipse después de hacer una tarea de paquete: No se pudo ejecutar el objetivo en el pozo del proyecto: No se pudieron resolver las dependencias para el proyecto com.jeteo: jackpot: war: 1.0-SNAPSHOT: Los siguientes artefactos no se pudieron resolver: javax.servlet: servlet-api: jar: 2.5.0, javax.servlet: jstl: jar: 1.2.0, javax.transaction: jta: jar: 1.1.0: No se ha encontrado javax.servlet: servlet-api: jar: 2.5.0 en http://repository.springsource.com/maven/bundles/release se guardó en caché en el repositorio local, la resolución no se volverá a intentar hasta el intervalo de actualización .... – bertie

+0

@Albert Kam.Respuesta actualizada para incluir referencia al repositorio central de maven para los artefactos que faltan – Raghuram

+0

prefijo com.springsource significa que los artefactos provienen del repositorio de la empresa de primavera – eis

1

Tengo un mensaje similar y mi problema son algunas preferencias de proxy en mi settings.xml. Así que los desactivé y todo funciona bien.

0

Tuve este problema. En mi caso, fue causado por IntelliJ Idea jugando con algunos de los archivos pom.xml (¡que parece disfrutar haciendo!). ¡Volví a la copia original y todo volvió a funcionar!

5

Como una fuente alternativa para el mismo problema, this answer cita el uso de Maven 3 frente a Maven 2 como la posible causa de este problema. Cerca de lo que puedo decir, esto se debe a los cambios en local repository resolution que se cambiaron en Maven 3. Poner esto aquí en caso de que alguien más busque y llegue a esta respuesta (como yo lo hice).

0

Tuve este problema también, resultó que fue debido a que NetBeans agregó algo a mi archivo pom.xml. No se ha hecho doble comprobación desde las implementaciones anteriores exitosas.

3

Tuve un problema similar y lo solucioné añadiendo los repos siguientes en mi 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> 
11

Maven guardó sus archivos en la memoria caché y no los intente para descargarlos. Simplemente puede 'ayudarlo' manualmente eliminando el directorio .m2, y luego nuestro amigo descargará todo en las antiguas dependencias.

0

Mi proyecto EAR tenía 2 módulos * .ear y * .war y obtuve este error de dependencia en el proyecto *.war al intentar mvn eclipse:eclipse. Se resolvió corrigiendo el problema de codificación utf-8 en el proyecto *.war. mvn-X o -e las opciones no fueron de ayuda aquí.

0

Este tipo de problemas se debe a dos razones:

  1. el hechizo de una dependencia que está mal
  2. la configuración del entorno MVN (. ~ Es decir/.m2/settings.xml) está mal

Si la mayoría de las dependencias se pueden descargar, entonces la razón 1 puede ser el error más probable. Por el contrario, si la mayoría de las dependencias tienen el problema, entonces debería echar un vistazo a settings.xml.

Bueno, he intentado solucionar mi problema toda la tarde, y finalmente lo conseguí. Mi problema ocurre en settings.xml, no en la ortografía incorrecta o incorrecta de settings.xml, pero la pérdida de activeProfiles.

0

descargar manualmente el frasco y luego ejecutar el comando desde la carpeta donde se guarda el frasco:

mvn instalar: instalar archivos -dfile = jar_file_name .jar-DgroupId = group_id -DartifactId = artifact_id -Dversion = version_no -Dpackaging = frasco

el archivo jAR, jar_file_name, group_id, artifact_id y version_no están disponibles en la página del repositorio de maven.

feliz codificación :)

Cuestiones relacionadas