O IntelliJ não pode encontrar fontes geradas quando usado no mesmo módulo
Estou usando processadores de anotação deAutoFactory do Google. Eu anoteiSomeClass
com@AutoFactory
e referenciadonew SomeClassFactory().create()
em outro lugar no mesmo módulo.
Eu adicionei a dependência necessária no Maven:
<dependency>
<groupId>com.google.auto.factory</groupId>
<artifactId>auto-factory</artifactId>
<version>1.0-beta2</version>
<optional>true</optional>
</dependency>
Ao executar$ mvn clean compile
eu vejo issotarget/generated-sources/annotions/somepackage/SomeClassFactory
é criado e o módulo é compilado sem erros.
Reimport all maven modules
Preferences
->Annotation Processors
->Enable annotation processing
Rebuild Project
Isso deve ser suficiente na minha versão do IDEA (v14.1.4
) se meu entendimento estiver correto.
Eu também executei as seguintes etapas:
Verificou quegenerated-sources
pasta é adicionada como fonteProject Structure
Verificou que a preferência do MavenGenerated sources folders
está configurado paraDetect automatically
Verificou que a fonte é realmente gerada na reconstrução (excluídatarget
pasta primeiro para garantir que seja gerado pelo IntelliJ)Tente desativarExclude output paths
na Estrutura do Projeto, conforme sugerido por@tilpnerInvalidar caches e reiniciarExcluir.idea
pasta e.iml
arquivosExperimente configurações diferentes paraPhase to be used for folders update
noPreferences
->Maven
->Importing
Problema:Depois de executar todas essas etapas, a classe gerada não aparece no explorador de projeto. De fato, toda atarget
O diretório está longe de ser visto. A compilação falha comcannot find symbol: SomeClassFactory
enew SomeClassFactory().create()
é marcado em vermelho no editor, enquanto o Maven gera e compila sem problemas.
Estou sem opções e qualquer ajuda ou sugestão seria muito bem-vinda!
Atualizar: quando eu comento o código que causa o erro de compilação, o IntelliJ imprime esse aviso nas mensagens de compilação:Warning:Output path /Users/.../target/generated-sources/annotations intersects with a source root. Only files that were created by build will be cleaned.