Pakethierarchie bei Ausgabe berücksichtigen #308
Labels
No Label
Codegen
confirmed
duplicate
Eclipse-Plugin
Feature Request
generics
in progress
invalid
JavaCompilerCore
needs info
Parser
Trash
Type
Unify
won't fix
works for me
No Milestone
No project
No Assignees
2 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: JavaTX/JavaCompilerCore#308
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Der javac Compiler liest die Pakethierarchie der einzelnen Klassen aus und bildet diese bei der Ausgabe der Bytecode Datei automatisch wieder ab. Der Java-TX Compiler tut dies aktuell nicht.
Beispiel:
Mit javac
Wenn der javac Compiler folgendermaßen aufgerufen wird, legt er automatisch die Pakethierarchie der Klassen im
target
Order an.Das resultiert in folgender Dateistruktur:
Mit dem Java-TX Compiler
Im Vergleich dazu legt der Java-TX Compiler die Hierarchie nicht an, sondern legt die Dateien einfach in das mit
-d
angegebene Verzeichnis flach ab.resultiert in folgender Dateistruktur:
Dadurch ist man gezwungen den Compiler für jede Datei einzeln aufzurufen, um die Dateistruktur korrekt wiederherstellen zu können.
resultiert dann ebenfalls in:
Wenn der Zielordner mit
-d
nicht angegeben wird, sollte sich der Compiler weiter so wie bisher verhalten, also das Classfile neben der Quelldatei ablegen. Durch die Änderungen funktioniert das nun nicht mehr wie gehabt.Um bei dem Beispiel von oben zu bleiben:
Wenn ein Zielordner manuell mit
-d
angegeben wird, funktioniert es jetzt wie gewünscht (bzw. wie beim Java Compiler). Allerdings nicht mehr, wenn der Zielordner nicht explizit angegeben wird.$ java -jar ../JavaTXcompiler-2.1-jar-with-dependencies.jar src/main/packagea/Foo.java src/main/packageb/Bar.java
Erwartet:
Ausgabe:
Zusätzlich funktioniert ein ganz normaler Aufruf des Compilers auf eine einzelne Quelldatei aktuell nicht mehr:
$ java -jar JavaTXcompiler-2.1-jar-with-dependencies.jar Bar.jav
Das macht es gerade sehr schwer den Compiler zu verwenden
Kannst du es nochmal versuchen?