Puede ejecutar el proyecto utilizando la opción de VM -verbose:class
. Esto se imprimirá para todas las clases cargadas desde donde se cargan. El uso de una aplicación de análisis inteligente/grep/regexp le permitirá filtrar los nombres de los jar en un conjunto de entradas únicas e indicarle cuáles se utilizan.
Creo que esto sería más fácil porque automáticamente te dirá si se usa una clase y, en caso afirmativo, en qué jar.
Por supuesto, el problema con esto y la cobertura del código es que será posible que elimine un jar que solo se usa en algunos casos excepcionales, pero su compilador se quejará si eliminó uno o dos demasiados, dejándolo con el (en su mayoría no demasiado complicado) tarea de encontrar la que tarro de la clase está en
Posible sugerencia al utilizar Linux:.
java -verbose:class <your startup command here> | grep "\[Loaded" | grep -o "from .*\]" | cut -c 6- | sort | uniq
Si no está utilizando Linux, a continuación, guardar en un archivo, obtener una máquina Linux y ejecutar en Linux (o usar algo para ejecutar comandos bash en Windows)
eliminar los archivos jar de la ruta de clases uno por uno volver a agregar el último en e eliminado cuando la compilación se rompe –
@ratchet freak - Mala idea, no detectará dependencias de tiempo de ejecución indirectas a menos que la compilación incluya pruebas de integración completa. –
@ratchet freak - Eso podría funcionar, pero ese es mi último recurso de fuerza bruta. – RobAu