2011-09-07 51 views
17

Estoy usando MyEclipse para desarrollar un proyecto Java Struts realmente simple. Todo funcionaba bien hasta que quise usar la clase StringUtils en org.apache.commons.lang. En MyEclipse Importé el paquete comoError del paquete Maven: org.apache.commons-lang no existe (Java)

import org.apache.commons.lang.StringUtils; 

he añadido el archivo JAR para commons-lang-2.4 a mi trayectoria de la estructura. Todo esto funciona bien y dandy y obtengo el Intellisense y no hay errores en Eclipse ni nada. Ahora, cuando voy a hacer un mvn clean package, me sale un error que dice que

The package org.apache.commons.lang does not exist

yo nos registramos en mi archivo de la guerra/pom.xml y tengo que declara como dependencia

<dependency> 
     <groupId>org.apache.httpcomponents</groupId> 
     <artifactId>httpclient</artifactId> 
     <version>4.0.1</version> 
    </dependency> 

    <dependency> 
     <groupId>commons-lang</groupId> 
     <artifactId>commons-lang</artifactId> 
     <version>2.4</version> 
    </dependency> 

</dependencies> 

Según mi investigación, calculé que Maven debería descargar el paquete e instalarlo en mi repositorio local si no existe. Revisé el repositorio y el archivo jar estaba allí. Pensé que el archivo jar debía estar dañado, así que eliminé la carpeta commons-lang para obtener una nueva descarga de commons-lang. Ahora aquí es donde me sorprende, después de eliminarlo del repositorio local y ejecutar un mvn clean package, se apaga y se descarga commons-lang-2.1 .pom y jar (aunque el pom.xml tiene 2.4) PERO todavía da un error de compilación diciendo que el paquete org.apache.commons.lang no existe.

No he estado usando Maven durante mucho tiempo, así que no estoy seguro de cómo solucionarlo. ¿Me estoy perdiendo de algo? ¿Debo agregar la dependencia en otro archivo pom.xml en otro lugar?

+0

Primero, eliminé commons-lang en el repositorio, y funcionó. – vanduc1102

+0

No estoy seguro de si hubo corrupción de archivos o qué, pero después de confirmar las dependencias a través del método de @TomaszNurkiewicz pude resolver este problema al eliminar el jar de mi repositorio de m2 local cuando ejecuté las pruebas. – eebbesen

Respuesta

22

intente ejecutar los siguientes comandos y examinar la salida:

$ mvn dependency:tree 
$ mvn help:effective-pom 

Busque commons-lang, tal vez algo va a llamar su atención como excluye o anulaciones de dependencia. También, es decir:

$ mvn dependency:copy-dependencies 

copiar commons-lang JAR a su target?

+5

¡Gracias que ayudaron un montón! Agregué una referencia para commons-lang 2.4 a mi jar pom.xml y ahora funciona. Cerré y volví a abrir el símbolo del sistema antes de hacer el paquete limpio y luego descargué las versiones correctas de las jarras y las construí con éxito. Debería haber publicado esta pregunta hace horas. Gracias – Rondel

+0

¿De qué comando estamos hablando aquí? Estoy usando netbeans en Windows 8 – RedBirdISU

-6

En src/main/java, habría una carpeta .auth. Abra la carpeta, vaya al archivo AuthController.java y elimine la línea de importación io.swagger. Reiniciar.

Cuestiones relacionadas