Benutze maven tycho, um mit einem Manifest-Eintrag Bundle-ClassPath zu erstellen, der vom maven-dependency-plugin heruntergeladen wird

8

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:

%Vor%

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.

    
Geoffrey De Smet 16.02.2011, 14:34
quelle

2 Antworten

2

Dies ist ein bekannter Fehler.

siehe Ссылка

    
jsievers 16.02.2011, 16:43
quelle
1

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.

    
Ivan Dubrov 16.02.2011 15:47
quelle

Tags und Links