Plataforma: IntelliJ Community Edition 10.0.3
SDK: jdk1.6.0_21
SO: Windows 7
Así que tengo una situación extraña con IntelliJ que me tiene completamente perplejo. Configuré un proyecto Maven y agregué log4j como una dependencia en el archivo pom.xml. Las inspecciones de IDEA funcionan bien y mi unidad prueba todas las compilaciones y ejecuciones.
Luego agregué la biblioteca jmime de hunnysoft a mi repositorio local de maven usando mvn install: install-file de la siguiente manera.
mvn install:install-file -Dfile=jmime.jar -DgroupId=jmime \
-DartifactId=jmime -Dversion=3.1.1e -Dpackaging=jar
Maven instaló el archivo jar muy bien en mi repositorio local.
Luego entré en Configuración de IntelliJ => Maven => Servicios de repositorio y actualicé mi repositorio local (para que IntelliJ reindexara el contenido del repositorio).
Finalmente, agregué la siguiente dependencia a mi archivo pom.xml (justo arriba de la dependencia log4j).
<dependency>
<groupId>jmime</groupId>
<artifactId>jmime</artifactId>
<version>3.1.1e</version>
</dependency>
Ahora creo una nueva clase de la siguiente manera:
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;
}
}
Ahora por la rareza. El mecanismo de intención de IntelliJ recoge y reconoce la importación de Logger en el archivo pom maven muy bien. Sin embargo, para todas las importaciones de hunnysoft, informa: "No se puede resolver el símbolo 'ByteString / Field / FieldBody'", PERO Build => Compile 'StackOverflowQuestion.java' compila todo correctamente y la prueba de unidad que creé para esta clase funciona bien (aunque las intenciones marcan la llamada a create () como un área problemática también).
Entonces, en alguna parte, IntelliJ ignora el archivo jmime.jar para el subsistema de intención. Estoy confundido porque la dependencia log4j funciona bien y todo se compila y funciona bien. F12 ("Ir a la declaración") funciona en la importación del registrador, pero se interrumpe en todas las importaciones de jmime.
Ah, otra cosa, si voy a la vista 'Paquetes' en la ventana "Proyectos" aparece el paquete "com.hunnysoft.jmime" y puedo ver TODAS las clases que importé en el fragmento de código de arriba en "Bibliotecas" . Al eliminar la dependencia anterior del archivo pom.xml, este paquete desaparece y la compilación se rompe.
Parece que la ruta de clase de la inspección está rota, pero no parece haber una configuración para esto en ninguna parte de Configuración => Intenciones | Áreas del compilador (no es que esperara ninguna configuración de este tipo, creo que IDEA ya debería conocer la ruta de clase correcta basada en el archivo pom y JDK).
Como experimento final, creé un nuevo proyecto de aplicación estándar J2SE (sin usar maven) y agregué el archivo jmime.jar directamente al proyecto como una de sus bibliotecas. Me encuentro exactamente con los mismos problemas descritos anteriormente en este nuevo proyecto.
Aquí está el MANIFEST.MF del archivo jar jmime.
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.
No veo nada inusual en este archivo jar.
Mi mejor conjetura es que quizás el problema podría ser un problema de dependencia que falta. Pero se supone que AFAIK jmime es autónomo (JarAnalyzer no presenta nada, pero no estoy seguro de que lo haría si falta un jar de dependencia).
Entonces, ¿alguien tiene alguna IDEA?
fuente
Respuestas:
En primer lugar, debe intentarlo
File | Invalidate Caches
y, si no funciona, elimine el directorio del sistema IDEA . Luego vuelva a importar el proyecto Maven y vea si ayuda.En algunos casos extraños, las clases compiladas pueden informar información incorrecta y confundir IDEA. Verifique que las clases de este jar reporten nombres correctos usando javap .
fuente
El siguiente truco resolvió este problema para mí:
Mi idea es la versión 12.0.4
fuente
View -> Tool Windows -> Maven Projects
luego haga clic en el icono de las flechas del ciclo.Ninguna de las soluciones anteriores funcionó para mí. Lo que hizo fue eliminar el archivo main.iml manualmente y de repente funcionó.
fuente
Para usuarios de Gradle:
Es posible que deba sincronizar su proyecto con su
build.gradle
archivo.Puede hacer clic derecho en su archivo gradle debajo del panel Proyecto para hacer esto, pero eso no pareció hacer nada por mí (sospecho que hay un error en mi versión). Sabrá si esto sucede porque no iniciará ninguna tarea de IntelliJ que estará esperando. En su lugar, abra el panel de la herramienta Gradle , luego haga clic en el botón sincronizar (actualizar). Esto funcionó para mí donde invalidar el caché y reiniciar no lo hizo.
Mi propia circunstancia: estaba usando un proyecto Scala con Gradle y tuve que hacer esto.
fuente
View > Tool Windows > Gradle
mavenCentral() could not be resolved
hasta que volví a agregar las configuraciones de jUnit (había portado un proyecto completo a Gradle al hacer un nuevo proyecto de Gradle y luego copiar todos los archivos de origen).Esto se mencionó en otra respuesta a esta misma pregunta aquí , pero esto solo me soluciona esto. Hago todas mis compilaciones en una terminal separada, fuera de IntelliJ. Por lo tanto, la caché debe tener los permisos adecuados establecidos para que la aplicación IntelliJ los lea.
Ejecútelo desde la carpeta raíz del proyecto.
fuente
Un paso adicional, cuando hice File -> Invalidate Caches y reinicié el IDE, abrí un proyecto. Apareció un toastbox en la esquina superior derecha preguntándome si habilitar la importación automática y eso resolvió el problema.
fuente
Otra cosa para verificar: asegúrese de que las dependencias no estén duplicadas. En mi caso, descubrí que un módulo que exhibía este comportamiento estaba mal configurado de la siguiente manera: tenía una dependencia de otro módulo y una dependencia de un jar producido por ese otro módulo. Esto significaba para cada símbolo referenciado por duplicado, y era ambiguo.
fuente
Los nombres de módulos inconsistentes / duplicados en la estructura del proyecto me estaban causando este problema.
File -> Project Strucutre -> Modules
Esto puede suceder cuando IntelliJ no se apaga correctamente y, por lo tanto, no puede guardar correctamente los nombres de módulos renombrados.
fuente
¿Se ha publicado un arreglo? Parece que el problema afectó originalmente a v11 / 12 debido a una "revisión del compilador" en 2013. Con una discusión sobre temas relacionados en Jira hasta finales de 2014. http://youtrack.jetbrains.com/issue/IDEA-98425
También en Jira IDEA-98425 se marcó fijo pero no verificado (en v12.0.3). Ninguno de los siguientes trabajo en torno a la determinación ayudado a este "No se puede resolver símbolo" problema con la versión 13.1.1 en Windows
a. Eliminar la carpeta .IdealIC13 (luego, Archivo \ Invalidar cachés / reiniciar)
si. Desde la ventana de Proyectos Maven ,
b.1 mvn -U idea: idea -〉 Ejecutar este objetivo maven supone recargar las dependencias. Esto funciona anterior, pero desde el último FRI, la ejecución de este objetivo maven falló al intentar recompilar el proyecto (por supuesto, falla como "No se pueden resolver los símbolos", eso es lo que estoy tratando de solucionar ejecutando este comando en primer lugar) mvn -version - muestra la versión de Maven referenciada 3.2.5 y que está funcionando
b.2 Simplemente haga clic con el botón derecho en el proyecto y vuelva a importar
b.3 Archivo \ Invalidar cachés / reiniciar
C. Intenté habilitar y deshabilitar esta configuración: Archivo -> Configuración -> Maven -> Importar -> "Usar maven3 para importar proyecto"
re. Configuración \ Maven \ Multiproject build fail policy = Fail at end (en lugar de Default)
Nada funciona. ¿Qué está pasando con el soporte IntelliJ en Maven?
https://youtrack.jetbrains.com/issue/IDEA-99302
Desde el historial de lanzamientos de JetBeans, https://www.jetbrains.com/company/history.jsp
IntelliJ v14 NOV 2014
IntelliJ v13 DEC 2013
Supongo que v12 fijo (aunque no verificado ) se incorporaría en versiones posteriores. ¿Alguien tiene problemas similares con qué versión de IntelliJ? Por favor comparte tu experiencia. El soporte de IntelliJ maven parece roto.
fuente
Estructura de mi proyecto:
Lo que funcionó:
Haga clic derecho en la
scala
carpeta y haga clic en "Marcar directorio como raíz de fuentes".fuente
Ninguno de los otros respondedores trabajó para mí. Mis importaciones no se resolvieron porque IntelliJ señaló un archivo .m2 incorrecto.
Versión IntelliJ: IntelliJ Idea 2018.1.5
Mi ubicación para el directorio .m2 apuntaba a la ruta incorrecta. Todo lo que hice para solucionarlo fue volver a apuntar IntelliJ al directorio .m2 correcto y actualizarlo.
Primero, vaya a: Archivo-> Configuración-> Compilación, Ejecución, Implementación-> Herramientas de compilación-> Maven
Tuve que cambiar el archivo de configuración del usuario: y el repositorio local: a la ubicación correcta de mi directorio .m2.
Después de esto, vaya a: Archivo-> Configuración-> Compilación, Ejecución, Implementación-> Herramientas de compilación-> Maven-> Repositorios
y haga clic en el botón Actualizar.
fuente
Por otra alternativa.
También tuve este problema cuando usé JDK7_07. Intenté todas las respuestas aquí (excepto eliminar el directorio del sistema IDEA). Pero, todavía tengo el problema. Entonces lo que hice es:
Instale el JDK más nuevo (era JDK7_45) y configure el JDK de Intellij en el nuevo, y funciona.
fuente
Acabo de tener este problema y simplemente no desaparecería. Finalmente eliminé el directorio de configuración de IntelliJ
~
y reconstruí mi proyecto IntelliJ desde cero. (Esto solo tardó unos 15 minutos al final, en comparación con pasar una hora tratando de resolver problemas con archivos en caché, etc.)Tenga en cuenta que mi suposición es que el problema inicial fue causado por algo como
javathings.blogspot.com/2009/11/too-many-open-files-in-intellij-idea.html
(Nota: a partir de 2018, ese enlace está muerto, pero archive.org tiene una copia de la página de alrededor cuando esta respuesta se escribió por primera vez) o un problema de espacio en disco / memoria que causa el bloqueo de Java. IntelliJ parecía corromperse.fuente
Si su proyecto maven es un proyecto de varios módulos, verifique si intellij ignora algunos de los módulos.
gs-multi-module
en la siguiente imagen).Unignore Projects
.Luego espere a que intellij termine de indexar, después de lo cual funcionará.
fuente
Sí, parece que tiene que crear bibliotecas que contengan los JAR que necesita y agregarlos como una dependencia en su módulo.
fuente
Después de invalidar mi caché y reiniciar; y confirmando que mi configuración de Maven estaba bien, seguía viendo "No se puede resolver el símbolo" para un módulo que definitivamente había configurado como una dependencia. Resulta que lo tenía configurado en el alcance incorrecto.
Puede verificar haciendo clic derecho en su módulo y seleccionando Abrir configuración de módulo. Haga clic en la pestaña de dependencia y verifique que el alcance de su dependencia no resoluble esté configurado en Compilar.
fuente
Reimportar el proyecto funcionó para mí. Haga clic derecho en Proyecto -> Maven -> Reimportar
cuando hice File -> Invalidate Caches y reinicié el IDE, abrí un proyecto. Mostró un diálogo en la parte superior derecha "Cambios detectados de Maven" y dio una opción para importar y habilitar la importación automática. Incluso después de importar el proyecto aquí, tuve el mismo problema. El paso anterior resolvió el problema.
fuente
A veces, solo abro la estructura del proyecto y hago clic en proyecto, luego elijo una versión de SDK .
fuente
En mi caso, estoy tratando de abrir un proyecto de inicio de Spring desde IntellijIdea, tuve el mismo problema, como no poder importar todos los archivos relacionados con Spring.
Entonces hice:
Ahora todo funciona bien como se esperaba.
He visto muchas respuestas aquí, pero finalmente encontré esta solución. Puede usarse para alguien como yo.
fuente
En mi caso, solo se elimina buildDir. En este caso,
File | Invalidate Caches
no funciona.Cuando lo hago
Build | Make Project
antesFile | Invalidate Caches
, todo funciona bien.fuente
fuente
Ninguna de las soluciones anteriores me lo resolvió. Tuve el mismo problema donde el código se compiló bien, pero IntelliJ mostró que no podía encontrar la importación. Aunque IntelliJ sugirió la importación en primer lugar desde la finalización del código.
Mi solución fue mover todo al paquete predeterminado, eliminar el
com.foo.bar
paquete, luego crearlo nuevamente y mover todo de nuevo.fuente
Las soluciones sugeridas no funcionaron. Tuve que ignorar varios proyectos, haciendo clic derecho en pom => maven => unignore project.
Luego después de un
En la consola, IntelliJ estaba feliz de nuevo. No tengo idea de cómo se ignoraron los proyectos ...
fuente
mvn idea:idea
trabajó para mi. Lo encontré aquí . Pasé más de una hora, espero que ayude a alguienfuente
Elimine el archivo: iml que se encuentra en java y las carpetas de prueba dentro del proyecto e invalide y reinicie.
Preguntará si puedo eliminar los proyectos. Poner sí. El error se apagará.
fuente
Lo que funcionó para mí fue "Marcar como raíz de origen del directorio" el directorio en el que estaba la clase marcada en rojo, después de que desapareció la marca roja. Parece que por alguna razón no estaba marcado.
fuente
Para proyectos de Gradle:
<problematic-project-root>/.idea
directorio<problematic-project-root>/.gradle
directorio.iml
archivos en<problematic-project-root>
DEL /S /Q *.iml
find . | grep -e .iml$ | xargs rm
fuente
si es un proyecto de Maven, simplemente vaya a Configuración -> Herramientas de construcción -> Maven -> Importación. marque la casilla "importar proyecto maven automáticamente". Resolverá el problema.
fuente
Invalidate Caches funcionó para mí, pero después de ejecutar la aplicación tuvo el mismo error.
Entonces intenté ( Intellij ):
1 - Barra de menú - Refactor | Construir | Correr | Herramientas: haga clic en Construir y luego en Proyecto de reconstrucción
2 - MVN limpio
3 - Haga clic derecho en proyecto> Maven> Generar fuentes y actualizar carpeta
Espero que esto funcione para usted.
Gracias
fuente
O tal vez el archivo que importa es demasiado grande. Este es mi caso, cuando cambio la propiedad Intellij: iead.max.intellisen.filesize (la ruta es $ {idea dir} /bin/idea.properties) a un valor mayor, como 25000, y reinicie el IDE, el problema desapareció. Espero que esto ayude.
fuente