Plataforma: IntelliJ Community Edition 10.0.3
SDK: jdk1.6.0_21
SO: Windows 7
Então, eu tenho uma situação estranha com o IntelliJ que me deixa completamente perplexo. Configurei um projeto Maven e adicionei log4j como uma dependência no arquivo pom.xml. As inspeções da IDEA funcionam bem e minha unidade testa todos os compilar e executar.
Em seguida, adicionei a biblioteca jmime da hunnysoft ao meu repositório maven local usando o arquivo mvn install: install-file da seguinte maneira.
mvn install:install-file -Dfile=jmime.jar -DgroupId=jmime \
-DartifactId=jmime -Dversion=3.1.1e -Dpackaging=jar
O Maven instalou o arquivo jar muito bem no meu repositório local.
Fui então para Configurações do IntelliJ => Maven => Serviços de repositório e atualizei meu repositório local (para que o IntelliJ reindexasse o conteúdo do repositório).
Por fim, adicionei a seguinte dependência ao meu arquivo pom.xml (logo acima da dependência do log4j).
<dependency>
<groupId>jmime</groupId>
<artifactId>jmime</artifactId>
<version>3.1.1e</version>
</dependency>
Agora crio uma nova classe da seguinte maneira:
package com.stackoverflow.question;
import org.apache.log4j.Logger;
import com.hunnysoft.jmime.ByteString;
import com.hunnysoft.jmime.Field;
import com.hunnysoft.jmime.FieldBody;
public class StackOverflowQuestion {
public Field create(String name, String text) {
Logger.getLogger(getClass()).debug("create entered");
FieldBody body = new FieldBody();
body.setText(new ByteString(text));
Field field = new Field();
field.setFieldName(name);
field.setFieldBody(body);
return field;
}
}
Agora, para a estranheza. O mecanismo de intenção do IntelliJ capta e reconhece perfeitamente a importação do Logger no arquivo maven pom. No entanto, para todas as importações da hunnysoft, ele reporta: "Não é possível resolver o símbolo 'ByteString / Field / FieldBody'", MAS Compilar => Compilar 'StackOverflowQuestion.java' compila tudo corretamente e o teste de unidade que criei para esta classe funciona bem (embora as intenções marcam a chamada para create () também como uma área problemática).
Então, em algum lugar, de alguma forma, o IntelliJ está ignorando o arquivo jmime.jar para o subsistema de intenção. Estou confuso porque a dependência do log4j funciona bem e tudo compila e funciona bem. F12 ("Ir para declaração") funciona na importação do Logger, mas quebra em todas as importações do jmime.
Ah, outra coisa, se eu for para a visualização 'Packages' na janela "Projects", o pacote "com.hunnysoft.jmime" será exibido e eu posso ver TODAS as classes que importei no trecho de código acima em "Bibliotecas" . A remoção da dependência acima do arquivo pom.xml faz com que este pacote desapareça e a compilação quebre.
Parece que o caminho de classe da inspeção está quebrado, mas não parece haver uma configuração para isso em nenhum lugar nas Configurações => Intenções | Áreas do compilador (não que eu esperasse essas configurações, acredito que o IDEA já deve conhecer o caminho de classe correto com base no arquivo pom e no JDK).
Como experimento final, criei um novo projeto de aplicativo J2SE padrão (sem usar o maven) e adicionei o arquivo jmime.jar diretamente ao projeto como uma de suas bibliotecas. Eu encontro exatamente os mesmos problemas descritos acima neste novo projeto.
Aqui está o MANIFEST.MF do arquivo jmime jar.
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.5.4
Created-By: 10.0-b23 (Sun Microsystems Inc.)
Name: com/hunnysoft/jmime/
Sealed: true
Specification-Title: Hunny JMIME
Specification-Version: 3.1.1
Specification-Vendor: Hunny Software, Inc.
Implementation-Title: com.hunnysoft.jmime
Implementation-Version: 3.1.1E
Implementation-Vendor: Hunny Software, Inc.
Não vejo nada incomum neste arquivo jar.
Meu melhor palpite é que talvez o problema seja um problema de dependência ausente. Mas o AFAIK jmime deve ser independente (o JarAnalyzer não cria nada, mas não tenho certeza se o jar de dependência está faltando).
Então, alguém tem alguma ideia?
fonte
Respostas:
Antes de tudo, tente
File | Invalidate Caches
e, se isso não ajudar, exclua o diretório do sistema IDEA . Em seguida, importe novamente o projeto Maven e veja se ele ajuda.Em alguns casos estranhos, as classes compiladas podem relatar informações erradas e confundir a IDEA. Verifique se as classes deste jar relatam nomes corretos usando javap .
fonte
O truque a seguir resolveu esse problema para mim:
Minha versão da ideia é 12.0.4
fonte
View -> Tool Windows -> Maven Projects
clique no ícone de setas do ciclo.Nenhuma das soluções acima funcionou para mim. O que fez foi remover o arquivo main.iml manualmente e de repente funcionou.
fonte
Para usuários Gradle:
Pode ser necessário sincronizar seu projeto com seu
build.gradle
arquivo.Você pode clicar com o botão direito do mouse no seu arquivo gradle no painel Projeto para fazer isso, mas isso não pareceu fazer nada para mim (suspeito de um bug na minha versão). Você saberá se isso acontece porque não inicia nenhuma tarefa do IntelliJ que você estará esperando. Em vez disso, abra o painel Gradle Tool e clique no botão sincronizar (atualizar). Isso funcionou para mim onde a invalidação do cache e a reinicialização não funcionaram.
Minha própria circunstância: eu estava usando um projeto Scala com Gradle e tive que fazer isso.
fonte
View > Tool Windows > Gradle
mavenCentral() could not be resolved
até adicionar as configurações de jUnit de volta (eu havia portado um projeto inteiro para Gradle criando um novo projeto Gradle e depois copiando todos os arquivos de origem).Isso foi mencionado em outra resposta a essa mesma pergunta aqui , mas isso por si só corrige isso para mim. Eu faço todas as minhas compilações em um terminal separado, fora do IntelliJ. Portanto, o cache precisa ter as permissões adequadas definidas para o aplicativo IntelliJ para lê-las.
Execute-o na pasta raiz do projeto.
fonte
Uma etapa extra, quando eu fiz Arquivo -> Invalidar Caches e reiniciei o IDE, abra um projeto. Apareceu uma caixa de notificação no canto superior direito, perguntando-me se a importação automática estava habilitada e isso resolveu o problema.
fonte
Outra coisa a verificar: verifique se as dependências não estão duplicadas. No meu caso, descobri que um módulo que exibia esse comportamento foi configurado incorretamente da seguinte maneira: ele dependia de outro módulo e dependia de um jar produzido por esse outro módulo. Isso significava para todos os símbolos referenciados em duplicado e era ambíguo.
fonte
Nomes de módulos inconsistentes / duplicados na estrutura do projeto estavam causando esse problema para mim.
File -> Project Strucutre -> Modules
Isso pode acontecer quando o IntelliJ não é desligado corretamente e, portanto, não pode salvar corretamente os nomes de módulos renomeados.
fonte
Uma correção foi publicada? Aparece o problema originalmente afetado v11 / 12 devido a uma "revisão do compilador" em 2013. Com discussões sobre problemas relacionados em Jira até o final de 2014. http://youtrack.jetbrains.com/issue/IDEA-98425
Também no Jira IDEA-98425 foi marcado como fixo, mas não verificado (na versão 12.0.3). Nenhum dos seguintes work-around determinação ajudou este "incapaz de resolver Symbol" problema com versão 13.1.1 no Windows
uma. Excluir pasta .IdealIC13 (em seguida, arquivo \ invalidar caches / reiniciar)
b. Na janela Projetos Maven ,
b.1 mvn -U idea: idea -〉 A execução desse objetivo é suposto recarregar as dependências. Isso funciona anterior, mas desde a última FRI, a execução desse objetivo foi falha ao tentar recompilar o projeto (é claro que falha como "Impossível resolver símbolos", é isso que estou tentando corrigir executando esse comando em primeiro lugar) mvn -version - mostra a versão maven referenciada 3.2.5 e que está funcionando
b.2 Simplesmente clique com o botão direito do mouse no projeto e reimporte
b.3 Arquivo \ Invalidar caches / reiniciar
c. Tentei Ativar e desativar esta configuração: Arquivo -> Configurações -> Maven -> Importando -> "Use o maven3 para importar o projeto"
d. Política de falha na compilação Settings \ Maven \ Multiproject = Falha no final (em vez de Padrão)
Nada funciona. O que está acontecendo com o suporte do IntelliJ no Maven.
https://youtrack.jetbrains.com/issue/IDEA-99302
No histórico de versões do JetBeans, https://www.jetbrains.com/company/history.jsp
IntelliJ v14 de novembro de 2014
IntelliJ v13 DEZ 2013
Eu diria que a v12 corrigida (embora não verificada ) seria incorporada nas versões subseqüentes. Alguém com problemas semelhantes com a versão do IntelliJ? Por favor, compartilhe sua experiência. O suporte para intelliJ parece quebrado.
fonte
Estrutura do meu projeto:
O que funcionou:
Clique com o botão direito na
scala
pasta e clique em "Marcar diretório como raiz de origem".fonte
Nenhuma das outras respostas funcionou para mim. Minhas importações não estavam sendo resolvidas porque o IntelliJ apontou para o arquivo .m2 errado.
Versão do IntelliJ: IntelliJ Idea 2018.1.5
Minha localização para o diretório .m2 foi apontada para o caminho errado. Tudo o que fiz para corrigi-lo foi apontar novamente o IntelliJ para o diretório .m2 correto e atualizá-lo.
Primeiro, vá para: Arquivo-> Configurações-> Construção, Execução, Implantação-> Ferramentas de Construção-> Maven
Eu tive que alterar o arquivo de configurações do usuário: e o repositório local: para o local correto do meu diretório .m2.
Depois disso, vá para: Arquivo-> Configurações-> Construção, Execução, Implantação-> Ferramentas de Construção-> Maven-> Repositórios
e clique no botão Atualizar.
fonte
Para outra alternativa.
Eu também tive esse problema quando usei o JDK7_07. Tentei todas as respostas aqui (exceto a exclusão do IDEA System Directory). Mas ainda tenho o problema. Então, o que eu fiz é:
Instale o JDK mais novo (era JDK7_45) e configure o JDK do Intellij para o novo e ele funciona.
fonte
Eu só tive esse problema e ele simplesmente não desapareceu. Eu acabei com o diretório de configuração do IntelliJ
~
e reconstruí meu projeto IntelliJ do zero. (Isso levou apenas 15 minutos no final, comparado a gastar uma hora tentando solucionar problemas com arquivos em cache, etc.)Observe que meu palpite é que o problema inicial foi causado por algo como
javathings.blogspot.com/2009/11/too-many-open-files-in-intellij-idea.html
(NB: a partir de 2018, esse link está morto, mas archive.org tem uma cópia da página anterior quando esta resposta foi escrita por escrito pela primeira vez). problema de espaço em disco / memória causando a falha do Java. IntelliJ parecia apenas ficar corrompido.fonte
Se o seu projeto maven for um projeto com vários módulos, verifique se alguns dos módulos são ignorados pelo intellij.
gs-multi-module
na imagem a seguir).Unignore Projects
.Em seguida, aguarde que intellij termine a indexação, após o que funcionará.
fonte
Depois de invalidar meu cache e reiniciar; e confirmando que minhas configurações do maven estavam corretas, eu ainda estava vendo "Não é possível resolver o símbolo" para um módulo que eu definitivamente havia definido como uma dependência. Acontece que eu o coloquei no escopo errado.
Você pode verificar clicando com o botão direito do mouse no seu módulo e selecionando Abrir Configurações do Módulo. Clique na guia dependência e verifique se o escopo da sua dependência não resolvível está definido como Compilar.
fonte
Reimportar o projeto funcionou para mim. Clique com o botão direito do mouse em Projeto -> Maven -> Reimportar
quando eu fiz Arquivo -> Invalidar caches e reiniciei o IDE, abra um projeto. Ele mostrou um diálogo no canto superior direito "Alterações do Maven detectadas" e deu uma opção para importar e ativar a importação automática. Mesmo depois de importar o projeto aqui, tive o mesmo problema. O passo acima resolveu o problema.
fonte
Às vezes, eu apenas abro a estrutura do projeto, clico em projeto e, em seguida, escolho uma versão do SDK .
fonte
No meu caso, estou tentando abrir um projeto de inicialização da IntellijIdea com o mesmo problema, como não foi possível importar todos os arquivos relacionados à primavera.
Então eu fiz:
Agora tudo está funcionando como esperado.
Eu já vi muitas respostas aqui, mas finalmente encontrei esta solução. Pode ser usado para alguém como eu.
fonte
Sim, parece que você precisa criar bibliotecas contendo os JARs necessários e adicioná-los como uma dependência em seu módulo.
fonte
No meu caso, apenas o buildDir é removido. Nesse caso,
File | Invalidate Caches
não funciona.Quando eu faço
Build | Make Project
antesFile | Invalidate Caches
, tudo funciona bem.fonte
fonte
Nenhuma das soluções acima resolveu isso para mim. Eu tive o mesmo problema em que o código foi compilado corretamente, mas o IntelliJ mostrou que não conseguiu encontrar a importação. Embora o IntelliJ tenha sugerido a importação, em primeiro lugar, da conclusão do código.
Minha solução foi mover tudo para o pacote padrão, excluir o
com.foo.bar
pacote, criá-lo novamente e mover tudo de volta.fonte
As soluções sugeridas não funcionaram. Eu tive que cancelar o reconhecimento de vários projetos, clicando com o botão direito do mouse no projeto pom => maven => unignore.
Depois de um
no console, o IntelliJ estava feliz novamente. Não faço ideia de como os projetos foram ignorados ...
fonte
mvn idea:idea
trabalhou para mim. Encontrei aqui . Passei mais de uma hora, espero que ajude alguémfonte
Remova o arquivo: iml encontrado em java e teste as pastas dentro do projeto, invalide e reinicie.
Ele perguntará se posso remover os projetos. Coloque sim. O erro se apaga.
fonte
O que funcionou para mim foi "Marcar como raiz de origem do diretório" o diretório em que estava a classe marcada em vermelho, depois que a marca vermelha desapareceu. Parece que, por algum motivo, não foi marcado.
fonte
Para projetos Gradle:
<problematic-project-root>/.idea
diretório<problematic-project-root>/.gradle
diretório.iml
arquivos em<problematic-project-root>
DEL /S /Q *.iml
find . | grep -e .iml$ | xargs rm
fonte
Se o projeto do maven, basta acessar as configurações -> ferramentas de construção -> maven -> importação. marque a caixa de seleção "importar projeto automatizado automaticamente". vai resolver o problema.
fonte
Invalidate Caches funcionou para mim, mas depois de executar o aplicativo teve o mesmo erro.
Então eu tentei ( Intellij ):
1 - Barra de menus - Refatorar | Construir | Executar | Ferramentas - clique em Compilar e em Reconstruir Projeto
2 - MVN limpo
3 - Clique com o botão direito do mouse em projeto> Maven> Gerar Fontes e Atualizar Pasta
Espero que funcione para voce.
obrigado
fonte
Ou talvez o arquivo importado seja muito grande. Esse é o meu caso, quando altero a propriedade Intellij: iead.max.intellisen.filesize (o caminho é $ {idea dir} /bin/idea.properties) para um valor maior, como 25000 e reinicie o IDE, o problema desapareceu. Espero que isto ajude.
fonte