Я использую компилятор javac и обнаружил, что он создает разные результирующие двоичные файлы .class в зависимости от порядка исходных файлов, передаваемых в качестве параметра. Фактически, это вопрос компиляции с помощью ANT или MAVEN, потому что они упорядочивают файлы по-разному.
Между 2 сборниками были различия. Я разобрал код и обнаружил, что javac (оптимизатор?) Удаляет устаревшие инструкции по сборке java jsr / ret из одной из компиляций.
Мне интересно, является ли это поведение результатом "неявной" компиляции:
http://docs.oracle.com/javase/1.5.0/docs/tooldocs/solaris/javac.html#searching
Кто-нибудь может объяснить это поведение?
Как мне сгенерировать "идемпотентный" процесс компиляции в ANT и MAVEN, где порядок исходных файлов, передаваемых компилятору, не имеет значения?