2012-07-15 9 views
8

Después de jugar con los complementos IDEA de Intellij por un tiempo, me he dado cuenta de que los complementos con dependencias externas funcionan bien, incluso si estas dependencias no se incluyen con el complemento ni se declaran públicamente en ninguna parte.¿Cómo gestiona Intellij IDEA las dependencias de los complementos?

Escogiendo un ejemplo al azar: el plugin GenerateToString depende, entre otras cosas, de log4j. Pero si echas un vistazo al archivo jar, verás que contiene solo sus propias clases además de algunos recursos (imágenes y archivos html) y metadatos (el obligatorio plugin.xml y el MANIFEST.MF), ninguno de los cuales tiene referencia a log4j. Y ese archivo jar es lo único que necesita para instalar el complemento.

¿Cómo es eso posible? ¿Cómo gestiona IDEA estas dependencias, para que no arroje un ClassNotFoundException o algo así en tiempo de ejecución?

Respuesta

6

IDEA utiliza el cargador de clases personalizado, si no encuentra la clase requerida en la distribución del complemento, se busca en todos los archivos jar ubicados en el directorio IDEA_HOME/lib.

Cuestiones relacionadas