Identyczne źródła Java kompilują się do różnych klas binarnych

Czy ktoś może wyjaśnić, w jaki sposób można skompilować identyczne źródła Javadwójkowy różne pliki klas?

Pytanie wynika z następującej sytuacji:

Mamy dość dużą aplikację (ponad 800 klas), która została rozgałęziona, zrestrukturyzowana, a następnie ponownie zintegrowana z bagażnikiem. Przed ponowną integracją połączyliśmy pień z gałęzią, co jest standardową procedurą.

Końcowym rezultatem był zestaw katalogów ze źródłami rozgałęzień i zestawem katalogów ze źródłami magistrali. Za pomocą Beyond Compare udało nam się ustalić, że oba zestawy źródeł były identyczne. Jednak przy kompilacji (ten sam JDK używając Maven'a hostowanego w IntelliJ v11) zauważyliśmy, że około kilkunastu plików klas było różnych.

Kiedy zdekompilowaliśmy źródło każdej pary pozornie różnych plików klas, skończyło się na tym samym źródle Java, więc jeśli chodzi o wynik końcowy, to nie ma to znaczenia. Ale dlaczego tak niewiele plików jest innych?

Dzięki.

Dodatkowa myśl:

Jeśli maven / javac kompiluje pliki w innej kolejności, może to wpłynąć na wynik końcowy?

questionAnswers(5)

yourAnswerToTheQuestion