Я пишу пользовательский инструмент для сборки файлов JAR из нашего дерева сборки.Нам нравится создавать «минимальные» jar-файлы, которые содержат только файлы .class
, на которые действительно ссылаются из «корневого» класса (где живет main ()) и т. Д., Рекурсивно следуя зависимостям.
Исторически мысделали это, заставив javac
следовать исходным зависимостям, но это означает перекомпиляцию общих файлов много раз.(Мы создаем 60 или 70 отдельных jar-файлов приложений из одного дерева исходных текстов.) Я пишу новую систему сборки, которая компилирует каждый исходный файл только один раз, но это означает, что нам нужно следить за зависимостями, анализируя файлы .class.
Хорошая новость в том, что у меня есть рабочий код, который делает то, что я хочу.Но мне нужно быть абсолютно уверенным Я не облажался, т. Е. Я хочу убедиться, что я создаю внутренне согласованные файлы JAR, где "непротиворечивый" означает, что все неразрешенные ссылки могут быть разрешены с помощью однойиз наших известных сторонних фляг.решаться одним из сторонних банок, переданных на --classpath
.Если нет, барф.