Execute novamente o processador de anotação de configuração do Spring Boot para atualizar os metadados gerados

99

Eu já adicionei:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-configuration-processor</artifactId>
    <optional>true</optional>
</dependency>

ao meu pom.xmlpor intellijpedido / aviso 's.

Agora estou vendo "Execute novamente o processador de anotação de configuração do Spring Boot para atualizar os metadados gerados".

Como faço o que intellijestá me pedindo para fazer?

Este link, B.2 Gerando seus próprios meta-dados usando o processador de anotação , não tem instruções.

Eric Francis
fonte

Respostas:

60

Seguir essas instruções funcionou para mim: http://www.mdoninger.de/2015/05/16/completion-for-custom-properties-in-spring-boot.html

Essa mensagem sobre ter que executar novamente o processador de anotação é um pouco confusa, pois parece que ele permanece lá o tempo todo, mesmo que nada tenha mudado.

A chave parece estar reconstruindo o projeto depois de adicionar a dependência necessária ou depois de fazer qualquer alteração de propriedade. Depois de fazer isso e voltar ao arquivo YAML, todas as minhas propriedades foram vinculadas às classes de configuração.

Você pode precisar clicar no botão 'Reimportar todos os projetos Maven' no painel Maven também para obter a visualização do arquivo .yaml para reconhecer os links de volta para a classe Java correspondente.

Patrick Herrera
fonte
Então não há como se livrar da mensagem?
OrangeDog
1
@OrangeDog Não que eu consiga encontrar. Aprendi a ignorá-lo, mas você sempre pode fazer uma solicitação de recurso ao JetBrains. Você poderia imaginar que eles poderiam ser um pouco mais espertos sobre isso e apenas exibi-lo se soubessem que o arquivo de classe ou o arquivo de configuração realmente mudou
Patrick Herrera
1
A mensagem de erro ainda permanece lá após reconstruir o projeto.
Kent Bull
3
“A chave parece ser reconstruir o projeto” me ajudou. A mensagem ainda está aqui, mas pelo menos a conclusão automática de minhas propriedades personalizadas no application.propertiesarquivo começou a funcionar.
Ruslan Stelmachenko
1
Eu uso o IDEA 2018.3 e tenho um link "Ocultar notificação" após a mensagem de texto. Parece que o JetBrains tornou as informações fechadas :-)
Marcus K.
18

Nenhuma das respostas funcionou para mim. Se você apenas deseja desativar a mensagem, vá para Preferências do Intellij -> Editor -> Geral -> Aparência, desmarque "Mostrar painel de metadados do Spring Boot".

No entanto, você também pode conviver com essa mensagem, se ela não o incomodar muito, então certifique-se de não perder nenhuma outra mensagem de metadados do Spring Boot em que possa estar interessado.

Lorenzo Polidori
fonte
4
A caixa de seleção está com IDEA 2017.2 em Preferências -> Idiomas e Frameworks -> Spring -> Spring Boot
oleh
15

Você pode habilitar processadores de anotação no IntelliJ por meio do seguinte:

  1. Clique em Arquivo
  2. Clique em Configurações
  3. Na pequena caixa de pesquisa no canto superior esquerdo, procure por "Processadores de anotação"
  4. Marque "Habilitar processamento de anotação"
  5. Clique OK
Brandon S
fonte
10

Eu tive o mesmo problema. O problema é que o processador de anotação Spring Boot gera o spring-configuration-metadata.jsonarquivo dentro da sua /target/classes/META-INFpasta.

Se acontecer de você ter ignorado essa pasta no IntelliJ como eu (porque, que diabos, quem se importa com os arquivos de classes?), O arquivo não será indexado pelo seu IDE. Portanto, sem conclusão e a mensagem irritante.

Basta remover targetda lista de arquivos / pastas para ignorar, localizada em Settings > Editor > File Types > Ignore files and folders.

Deathtiny
fonte
2
Não vejo targetem meus arquivos ignorados. Está no meu .gitignorepensamento.
Eric Francis
target/está excluído no meu caso e as coisas estão funcionando bem.
Amr Mostafa
3
Ele será usado independentemente de o destino ser excluído ou não (sou o desenvolvedor responsável por esse recurso). Envie um relatório de bug se conseguir reproduzir este comportamento errado.
Yann Cébron
1
então qual versão do IntelliJ se comporta corretamente?
Marx de
2
@ YannCébron mesmo aqui, com gradle. O arquivo é criado em ./build/classes/java/main/META-INF/spring-configuration-metadata.json, mas IntelliJ não leva isso em consideração. Se eu mover manualmente o arquivo json para src / main / resources / META-INF, ele funciona (as configurações não estão mais amareladas)
Costi Muraru
9

Nenhuma dessas opções funcionou para mim. Descobri que a detecção automática de processadores de anotação é muito instável. Acabei criando uma seção de plug-in no arquivo pom.xml que define explicitamente os processadores de anotação que são usados ​​para o projeto. A vantagem disso é que você não precisa depender de nenhuma configuração IDE.

<plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.7.0</version>
            <configuration>
                <compilerVersion>1.8</compilerVersion>
                <source>1.8</source>
                <target>1.8</target>
                <annotationProcessors>
                    <annotationProcessor>org.springframework.boot.configurationprocessor.ConfigurationMetadataAnnotationProcessor</annotationProcessor>
                    <annotationProcessor>lombok.launch.AnnotationProcessorHider$AnnotationProcessor</annotationProcessor>
                    <annotationProcessor>org.hibernate.jpamodelgen.JPAMetaModelEntityProcessor</annotationProcessor>
                </annotationProcessors>
            </configuration>
        </plugin>
Jason Turan
fonte
6
Este funcionou para mim. Usei em annotationProccessorPathsvez de definir classes individuais. <annotationProcessorPaths><path><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId><version>${parent.version}</version></path>...
Fırat KÜÇÜK
1
  1. Inclui uma dependência de spring-boot-configuration-processor
  2. Clique em "Reimportar todos os projetos Maven" no painel Maven do IDEA
  3. Reconstruir projeto
Timomeinen
fonte
0

Para mim, outras respostas não funcionaram. Eu tive que abrir Filese fazer Invalidate caches and restartno Intellij. Depois disso, tudo funcionou bem novamente.

Set GH
fonte