Ich habe ein Eclipse-Plugin mit diesem Manifest:
%Vor% Nun wollen wir nicht drools-api.jar
und drools-core.jar
in die Quellcodeverwaltung einfügen, also benutzen wir ein Plugin, um sie aus dem maven-Repository zu holen:
Allerdings das erste Mal wir bauen dieses Modul, es schlägt fehl, weil dies passiert:
%Vor% Wenn wir es einfach erneut erstellen, ist es erfolgreich, weil die jars sich bereits im Verzeichnis lib
befinden, bevor die Builds gestartet werden: Es gibt keine Warnungen und die jars befinden sich im Kompilierungsklassenpfad.
Wie können wir das beheben, so dass wir die Jars nicht in der Quellcodeverwaltung festschreiben müssen und trotzdem Bundle-ClassPath
verwenden?
Hinweis : Für die aktuelle Implementierung des Plugins müssen wir Bundle-ClassPath
verwenden: die Verwendung von Require-Bundle
ist keine Option.
Ich habe versucht, ähnliches zu tun, und ich habe den Eindruck, dass das nicht funktionieren wird.
Scheint so, als ob maven-dependency-plugin erfordert, dass der Compile-Klassenpfad aufgelöst wird, um JARs herunterzuladen (selbst wenn Sie Abhängigkeiten über & lt; artifactItems & gt; angeben).
Daher wird die Tycho-gesteuerte Klassenpfadauflösung ausgeführt, bevor JARs heruntergeladen werden, so dass sie nicht in den Klassenpfad gelangen. Art von Huhn und Ei Problem.
Um dieses Problem zu lösen, habe ich ein separates Profil "download-deps" erstellt, mit dem ich das Verzeichnis der Bibliotheken aktualisiert habe (zB: mvn -Pdownload-deps validate
).
Diese Approcha funktioniert jedoch nicht gut, da, wenn das Paket B
vorhanden ist, das Importpaket vom Paket A
bereitgestellt wird, das JARs mit diesem Paket einbettet, schlägt die Kompilierung von B mit einer nicht aufgelösten Abhängigkeit fehl. Daher müssen Sie diesen Befehl ausführen, bis alle JARs heruntergeladen sind. Sehr hässlich.