O compilador Maven não consegue resolver a importação
Estou tentando construir vários produtos eclipse com maven e tycho. No momento, estou preso em um problema, em que um pacote A depende de uma classe do pacote B. O pacote B tem uma estrutura de pacote semelhante a:
a.b.c.d.e.f.Class
Quando tento agora construir IA, obtenho um erro de compilação que se parece com isto:
import a.b.c.d.e.f.MyClass;
[ERROR] ^^^^^^^^^
[ERROR] The import a.b.c.d.e cannot be resolved
Se você olhar com atenção, verá que o Maven aparentemente tenta resolver o pacote errado, pois ele apenas afirma que não pode ser resolvido a.b.c.d.e
enquanto a classe que deve ser importada estiver realmente em a.b.c.d.e.f
.
Além disso, não há classes presentes em a.b.c.d.e
. Tentei incluir a.b.c.d.e
um pacote exportado no Manifesto e removê-lo dessa lista, mas nenhum dos dois ajudou.
Qual poderia ser o problema aqui?
Respostas
Depois de executar o maven com um registro muito detalhado, verifiquei novamente os argumentos que o maven (tycho) estava passando para o compilador JDT ao compilar o Bundle A. Eu percebi que ele estava apenas passando um JAR que eu adicionei ao classpath do Bundle B.
Eu então percebi que no MANIFEST do Bundle B, onde eu especifiquei o Bundle-Classpath
, eu tinha apenas o JAR no classpath. Anteriormente, pensei que as classes do próprio pacote seriam adicionadas por padrão, mas depois de adicionar ,.
à Bundle-Classpath
propriedade a construção funcionou novamente.
Se você quiser ler mais sobre isso, ESTE POST me indicou a direção certa.