Por que as classes geradas adequadas não estão sendo compiladas pelo Eclipse?
-
27-09-2019 - |
Pergunta
No meu projeto Eclipse, estou usando um processador de anotação de terceiros, Hibernate Metamodel Gerator para ser exato. O processador de anotação funciona conforme o esperado e gera arquivos .java, conforme especificado pela especificação. Esses arquivos são gerados no diretório do projeto Eclipse sob uma pasta "gen". Nas propriedades do projeto, isso é refletido corretamente, pois existem duas pastas de origem - "SRC" e "Gen". No entanto, quando o projeto é criado por algum motivo, todas as fontes [geradas] em "Gen" não são compiladas (verificando o diretório "bin", eu só vejo arquivos .class do diretório "SRC"). Alguém sabe por que isso está acontecendo?
Solução
Eu descobri isso há um tempo atrás e pensei em voltar e explicar o que acontece. Quando o compilador é executado, ele compila as fontes existentes (as que eu escrevi) e, em seguida, gera arquivos de origem a partir dos arquivos de origem existentes, mas não compilam essas classes geradas. Acabei transformando isso em um projeto ANT (conforme a configuração instruções). Então, basicamente, eu tinha duas tarefas: primeiro a gerar novos arquivos de origem (executando o JAVAC com o -proc:only
A opção faz com que o processamento da anotação ocorra sem compilar as fontes) e a segunda para compilar todas as fontes (geradas e existentes).
Outras dicas
Você precisará atualizar a pasta "Gen" no Eclipse (por exemplo, do pacote Explorer) para que o Eclipse ver os arquivos recém -gerados e compilá -los. Você está fazendo isso?