2013-02-19 12 views
5

Ich habe mit dem Hinzufügen von benutzerdefinierten Anmerkungen zu Lombok experimentiert. Mein Ausgangspunkt ist eine Gabelung der Quelle auf GitHub.Benutzerdefinierte Lombok-Erweiterungen erfordern Lombok-Paket?

Ich habe eine Anmerkung hinzugefügt, die gut funktioniert. Ich kann den enthaltenen Eclipse-Start verwenden (oder ein jar erstellen und in meine eclipse.ini umwandeln), um die Ergebnisse zu testen und zu sehen: Ich habe eine Methode erfolgreich in eine Klasse eingefügt.

Jetzt funktioniert das nur, wenn ich meine zusätzlichen Handler-Klassen unter dem lombok Paket setzen. Wenn ich sie unter ein anderes Paket setze, werden sie einfach nicht funktionieren. Ich kann ein neues physisches Quellverzeichnis erstellen, das Buildskript optimieren, um es angemessen einzubeziehen, und meine neuen Klassen dort leben lassen, solange es logisch neue Klassen unter Lombok verpackt.

Warum ist das? Gibt es das überhaupt? Ich möchte alle Ergänzungen, die ich schreibe, in ein neues Top-Level-Paket aufteilen, um sie von den offiziellen Lombok-Erweiterungen abzugrenzen.

Antwort

3

Aufgrund von Classloader-Problemen in Eclipse patcht Lombok den Equinox-Klassenlader, um Klassen im Lombok-Paket von einem anderen Ort aus zu laden. Dies ist fest codiert. Ihre Erweiterung muss also auch im Lombok-Paket enthalten sein, oder Sie müssen the code in EclipsePatcher ändern, um auch Ihr eigenes Paket hinzuzufügen.

Volle Offenbarung: Ich bin einer der Projekt Lombok Entwickler.

+0

Danke für die Info, genial, um es direkt aus einer Quelle zu bekommen! Ich werde versuchen, meine Pakete in diesen Patch-Code einzufügen und zu sehen, ob es funktioniert. –