2012-04-12 12 views
8

En compilación de plataformas geotools personalizadas (de hecho basadas en OSGi) uno de los módulos se compila correctamente cuando intento construirlo por separado. Pero cuando construyo todo el proyecto, falla en el escenario compile con motivo de que no puede encontrar ciertos paquetes/clases. Howerver la dependencia se resuelve bien.maven resuelve dependencia pero no puede encontrar paquete/clases en él

aquí es la dependencia de pom.xml del módulo:

<dependency> 
    <groupId>org.picocontainer</groupId> 
    <artifactId>com.springsource.org.picocontainer</artifactId> 
    <version>1.2.0</version> 
</dependency> 

la parte del error de generación de Maven:

...\geotools-osgi\modules\extension\xsd\xsd-core\src\main\java\org\geotools\xs\bindings\XSGroupBinding.java:[19,24] package org.picocon tainer does not exist

...\geotools-osgi\modules\extension\xsd\xsd-core\src\main\java\org\geotools\xml\AbstractComplexBinding.java:[20,24] package org.picocon tainer does not exist

...\geotools-osgi\modules\extension\xsd\xsd-core\src\main\java\org\geotools\xml\ComplexBinding.java:[21,24] package org.picocontainer does not exist

si cambio el dependecy pom.xml - falla con algún tipo de "no puedo resolver el paquete".

El proyecto es realmente grande y el número de paquetes y poms hijo/padres. Entonces no puedo publicar todos aquí. Entonces mi pregunta es: ¿cuál es la posible razón para este tipo de problemas? ¿Podría ser un conflicto de dependencia entre padres/hijos?

+0

No creo que pueda ser causado de alguna manera por la relación padre-hijo porque independientemente de si compila solo este módulo o proyecto en conjunto, classpath es el mismo. Intenta ejecutar build con la opción de depuración '-X', podría arrojar algo de luz. PD 'org.picocon tainer' es esto un error tipográfico? –

+0

sí, eso es un error tipográfico relacionado con foramtting, lo siento. –

Respuesta

1

Bueno, el motivo real era que la computadora de destino tenía acceso restringido a Internet, por lo que el acceso restringido a los repositorios maven. Con algo de magia negra no falló con algún tipo de artefacto de 'no se puede descargar' (tal vez debido a la instalación manual de algunos archivos jar). Así que obtuvimos el servidor con acceso normal, lo configuramos como un espejo, configuramos nuestro experto para usar el espejo y eso resolvió el problema. Gracias @Samuel por participar en mi problema, pero como puedo ver, no fue posible determinar el problema a partir de la descripción del problema.

5

Puedo ver dos cosas para tratar de resolverlo.

Primero, si va a su repositorio .m2 local, verá si hay otras versiones de lib (sin embargo, a veces las diferentes versiones pueden tener un nombre diferente, y por lo tanto se pueden almacenar en una carpeta diferente, lo que hace no ayuda)

También puede verificar cuál es la dependencia real utilizada, en su IDE o en la línea de comandos (mvn dependency: tree). Es posible que tenga que excluir alguna dependencia transitiva para mantener la coherencia. Yo uso el plugin de Eclipse para eso.

Finalmente, cuando esté seguro de la dependencia que utiliza, puede abrir el jar y ver si lo que espera estar allí está presente.

+0

Gracias por la respuesta rápida. Como sugirió hice una comprobación de dependencia 'mvn dependency: tree' y no mostró ningún error - BUILD SUCESSFUL. La búsqueda en la carpeta .m2/repositorio por la palabra clave 'picocontainer' muestra solo un .jar - exactamente el que necesito y no está vacío - contiene todos los paquetes necesarios y las clases que necesito. –

+0

¿Su IDE compila exitosamente su código? ¿Qué IDE usas? –

0

Tuve el mismo problema. Mi problema era que la dependencia se estableció para probar. así que cuando emití exec: java, no pude encontrar la clase porque estaba fuera del alcance.

Cuestiones relacionadas