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?