Google для JarAnalyzer, который помогает по крайней мере понять, как строятся зависимости. Используйте фляги, ваш проект затмения также производит. Однако вы не можете автоматизировать это. Представьте, что один из ваших проектов затмения нуждается в bad-1.0.jar, а другой использует bad-1.2.jar. Очень часто вы не можете заменить 1.0 на 1.2, потому что ваш проект больше не будет компилироваться. Таким образом, в конечном итоге вы должны УДАЛИТЬ устаревшие файлы jar, переключиться на «общую версию» среди всех подпроектов и исправить ошибки компилятора. И пока вы это делаете, переключитесь на плющ или мавен.
У ваших файлов jar даже есть собственные имена, или у вас есть 3 разные версии bad.jar, которые одинаково выглядят в файловой системе, но на самом деле имеют другую версию? Если это так, начните с переименования всех соответствующих файлов JAR, чтобы включить номер версии (часто это можно найти в файле манифеста) ... черт, я однажды сделал то, что вы делаете, и написал мне с JArAnalyzer, немного Groovy и некоторые небольшие скрипты инструмент, который сгенерировал все файлы плюща для проекта.