Wenn man nicht Herr über die Plugin-Instanzen ist …
Für unser Eclipse-Projekt Obfuscate4e arbeitete ich seit geraumer Zeit an Aktualisierungen. Vor allem sollte der eingebaute Java-Obfuscator Proguard aktualisiert werden. Und beim Testen mit den verschiedenen Eclipse-Versionen (3.2.x und 3.3.x) sowie Java-Ausgaben (1.4 und 1.5) bekam ich häufig und scheinbar unvorhersehbar die Meldung, dass Ant den proguard-Task nicht aktivieren kann, weil das proguard.jar nicht im Ant-Classpath zu finden sei. Und Ant ergänzte noch, dass dies kein Bug, sondern ein Konfigurationsfehler ist. Danke!
Das war ziemlich nervig, weil der Grund dafür nicht lokaloisierbar war und der Fehler sogar auftrat, wenn ich die letzte Release auscheckte und diese nachweislich funktionierende Version nicht funktionierte. Bis ich nun den Fehler gefunden habe:
Beim Testen der Distribution vor der letzten Release habe ich das feature auch mal über unsere Update site installiert. Und zwar in die Extension location, in der ich eigentlich nur das Subversive Feature verwalte. Und wann immer ich ein Eclipse neu aufsetzte und die Subversive-Extension location integrierte, kannte Eclipse auch das (mittlerweile veraltete) proguard-Plugin. Nachdem ich es entfernt und Eclipse einmal neu gestartet hatte, funktionierte alles wieder bestens. Es war also wirklich ein Konfigurationsfehler – 1:0 für Ant.
Gefunden habe ich den Fehler übrigens, als ich in der Eclipse IDE (mit geöffnetem obfuscate4e-Workspace) in den Preferences > Ant > Runtime im Classpath das proguard.jar und in der Tasks-Liste den proguard-Task gelistst sah, den Eclipse zu diesem Zeitpunkt gar nicht kennen durfte. Zum Glück habe ich vergessen zu zählen, wie viele Stunden mich dieser Fehler gekostet hat.



Follow me!