Pregunta

¿IntelliJ se compila todo el tiempo ya que me indica con líneas onduladas rojas cuando hay un error?(además de las funciones de autocompletar) ¿O está haciendo algún tipo de pseudocompilación?

Si está realizando una compilación legítima, ¿dónde coloca estas clases compiladas?Me gustaría apuntar mi JRebel a ese directorio en lugar de a las carpetas de destino del módulo individual.

¿Fue útil?

Solución

Meo tiene razón, por lo que aprendí cuando desarrollé complementos para lenguajes personalizados, IntelliJ no compila nada hasta que usted crea explícitamente su proyecto.Mientras escribe, su lexer/analizador detecta cualquier token o construcción de código no válido.Mientras tanto, mantiene un índice de cada clase y método de su proyecto y sus dependencias, junto con su firma, etc.

Después de dejar de escribir, verás un pequeño ojo de color en la parte superior del canal derecho.Indica que el IDE está ejecutando "anotadores" e "inspecciones de código".Son capaces de saber si las clases, métodos y variables son válidos o no en función del índice actual y el estado actual de su archivo (importaciones, declaraciones, etc.).Lo mismo ocurre con las variables no utilizadas, los parámetros no válidos en las llamadas a métodos, etc.

Ventajas:

  • Los anotadores trabajan directamente en lo que llaman un árbol PSI, que es básicamente un AST mejorado que representa su archivo actual.
  • puede ser más rápido que compilar cada vez (usa un índice y no necesita volver a compilar cada clase dependiente)
  • los anotadores pueden detectar cosas javac no me importan, como errores potenciales (p. ej.usando = en lugar de == en un while condición)

Contras:

  • eso es muchísimo trabajo, básicamente necesitan reescribir la lógica para encontrar cada error que javac puede producir (razón por la cual puede encontrar muchos problemas en su rastreador de errores etiquetados "buen código es rojo" o "el código incorrecto es verde", lo que significa que hay una diferencia entre lo que detectan y lo que generaría el compilador)

TL;DR:no produce ninguna .class Hasta que realices tu proyecto, todo se hace "a mano"

Otros consejos

Para cada módulo, la ruta de salida del compilador se puede encontrar a partir de la pestaña en la configuración del módulo . Jrebel Plugin genera Rebel.xml automáticamente y deriva automáticamente la ruta del directorio desde la configuración del módulo , por lo que no necesita señalar las ubicaciones manualmente: simplemente genere rebel.xml usando el complemento IDE: haga clic derecho en el módulo enVista del proyecto -> Jrebel -> Generar rebel.xml

IntelliJ entiende el código, no necesita compilar el código para saber qué está mal.

Solo para agregar, después de la compilación, las clases se almacenan en el directorio target, si es un proyecto Maven, de lo contrario, el directorio se especifica en la estructura del proyecto de Intellij, en "SALIDA DEL COMPILADOR DEL PROYECTO":

 ingrese la descripción de la imagen aquí

Encontré mis archivos .class al ir a las carpetas de salida / producción / principal del directorio de inicio del proyecto.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top