Identische Java-Quellen werden in verschiedene Binärklassen kompiliert

Kann jemand erklären, wie identische Java-Quellen kompiliert werden könnenbinär Unterschiedliche Klassendateien?

Die Frage ergibt sich aus der folgenden Situation:

Wir haben eine ziemlich große Anwendung (über 800 Klassen), die verzweigt, umstrukturiert und dann wieder in den Stamm integriert wurde. Vor der Wiedereingliederung haben wir den Trunk in den Zweig integriert, was Standardverfahren ist.

Das Endergebnis war eine Reihe von Verzeichnissen mit den Zweigquellen und eine Reihe von Verzeichnissen mit den Trunkquellen. Mit Beyond Compare konnten wir feststellen, dass beide Quellensätze identisch waren. Beim Kompilieren (gleiches JDK Unter Verwendung von maven, das in IntelliJ v11 gehostet wurde, stellten wir fest, dass ungefähr ein Dutzend der Klassendateien unterschiedlich waren.

Als wir den Quellcode für jedes Paar anscheinend unterschiedlicher Klassendateien dekompilierten, endeten wir mit demselben Java-Quellcode, was das Endergebnis angeht, scheint dies keine Rolle zu spielen. Aber warum unterscheiden sich nur einige der Dateien?

Vielen Dank.

Zusätzlicher Gedanke:

Wenn maven / javac Dateien in einer anderen Reihenfolge kompiliert, kann dies das Endergebnis beeinflussen?

Antworten auf die Frage(5)

Ihre Antwort auf die Frage