El compilador de Maven no puede resolver la importación
Estoy intentando crear varios productos de eclipse con maven y tycho. Actualmente estoy atascado en un problema, donde un paquete A depende de una clase del paquete B. El paquete B tiene una estructura de paquete similar a:
a.b.c.d.e.f.Class
Cuando ahora intento construir AI, aparece un error de compilación que se parece a esto:
import a.b.c.d.e.f.MyClass;
[ERROR] ^^^^^^^^^
[ERROR] The import a.b.c.d.e cannot be resolved
Si observa de cerca, verá que Maven aparentemente intenta resolver el paquete incorrecto, ya que solo indica que no se puede resolver a.b.c.d.e
mientras la clase que se debe importar está realmente en a.b.c.d.e.f
.
Además, no hay clases presentes en a.b.c.d.e
. Intenté incluir ambos a.b.c.d.e
como un paquete exportado en el manifiesto y eliminarlo de esa lista, pero ninguno ayudó.
¿Cuál podría ser el problema aquí?
Respuestas
Después de ejecutar maven con un registro muy detallado, verifiqué dos veces los argumentos, que maven (tycho) pasaba al compilador JDT al compilar el Bundle A. Noté que solo pasaba un JAR que agregué al classpath del Bundle B.
Luego me di cuenta de que en el MANIFIESTO del paquete B, donde especifiqué Bundle-Classpath
, solo tenía The JAR en la ruta de clases. Anteriormente pensé que las clases del paquete en sí se agregarían por defecto, pero después de agregar ,.
a la Bundle-Classpath
propiedad, la compilación funcionó nuevamente.
Si quieres leer más sobre esto, ESTE POST me indicó la dirección correcta.