OSGi Import kann nicht aufgelöst werden

OP #3657787
Lesenswert?
• ▲
▼
Hallo zusammen,

beim exportieren eines eclipse-PlugIn-Projekts bekomme ich eine 
.log-Datei mit (unter anderem) folgenden Fehlermeldungen:
"Der Import org.apache kann nicht aufgelöst werden"
"ObjectUtils kann nicht aufgelöst werden" (ist in 
org.apache.commonx-lang3 enthalten)

In eclipse bekomme ich keinen Fehler angezeigt, die entsprachende 
jar-Datei (commons-lang3-3.1.jar) befindet sich im Projektordner und ist 
auch in den Plug-in-Abhängikeiten aufgeführt. Wie bekomme ich es denn 
nun hin, dass das PlugIn erfolgreich exportiert wird?
Gast #3657999
Lesenswert?
• ▲
▼
Robert B. schrieb:
> Kollege schrieb:
>>>> org.apache.commonx-lang
>>
>> Ist das OSGi-fiziert?
>
> Was meinst du mit OSGi-fiziert?

Handelt es sich dabei um ein OSGi Bundle?

Du brauchst OSGI Bundles wenn du Eclipse Plugins schreiben möchtest, 
"normale" Jars reichen nicht.

Eclipse Orbit hat ein paar OSGi-fizierte Jars: 
http://download.eclipse.org/tools/orbit/downloads/

Das Spring Enterprise Repository auch: 
http://ebr.springsource.com/repository/app/

Kannst dir auch selbst welche erstellen: 
http://www.vogella.com/tutorials/EclipseJarToPlugin/article.html

Musst halt darauf achten, das die Abhängigkeiten "passen, d.h. diese 
müssen auch OSGi Bundles sein, ind er passenden Version.

Ansonsten ist http://www.vogella.com/ ein guter Einstieg in die 
Grundlagen.
Persönliche Seite #3658065
Lesenswert?
• ▲
▼
Robert B. schrieb:
> beim exportieren eines eclipse-PlugIn-Projekts bekomme ich eine
> .log-Datei mit (unter anderem)

Immer ganz oben anfangen, wie beim Compilieren...

Robert B. schrieb:
> im Projektordner
Wie wo liegt die genau? Sowas gehört nicht in das Projekt sondern in die 
Targeplattform.

Robert B. schrieb:
> beim exportieren

Versuch mal die Option "Use classes compiled in the workspcae", der 
Eclipse eigene Exporter ist manchmal etwas supotimal.
OP #3660457
Lesenswert?
• ▲
▼
Läubi .. schrieb:
> Hast du überhaupt eine eigene
> Targeplatform definiert?

Nein, in den von mir bearbeiteten Tutorials und Büchern stand davon auch 
nichts. Also keine EIGENE Zielplattform! Hab gelesen, dass man optimaler 
Weise bei der Erstellung des Plug-In-Projekts als Targetplatform "an 
OSGi framework" und dort standard auswählt. Damit soll es insgesamt 
portabler sein.
Persönliche Seite #3660532
Lesenswert?
• ▲
▼
Robert B. schrieb:
> Hab gelesen, dass man optimaler Weise bei der Erstellung des
> Plug-In-Projekts als Targetplatform "an OSGi framework" und dort
> standard auswählt

Das ist auch korrekt. Trotzdem kannst du dir ein eigenes Target 
definiere, das hängt aber davon ab was du vor hast! Willst du OSGi 
Bundles entwickeln? Oder Eclipse Plugins für die IDE?
Persönliche Seite #3660560
Lesenswert?
• ▲
▼
Okay, dann vermutlich mit Equinox als OSGi Framework, dann würdest du 
folgendermaßen vorgehen:

- Neues (standard) Projekt (z.B. my.company.project.target) anlegen
- einen Ordner equinox
- einen (oder später mehr) Ordner lib
- eine neue Targetplattform

In den Ordner equinox legst du dann die gewünschte Equinox SDK (z.B. 
http://download.eclipse.org/equinox/drops/R-KeplerSR2-201402211700/index.php 
'All of Equinox')

In den Ordner lib legst du "externe" Bundles rein (vorher einmal prüfen 
das diese ein passendes OSGi-Manifest haben) wie z.B. die Apache Commons

Dann diese beiden Ordner in der Targetplatform hinzufügen, er zeigt dir 
dann an wieviele Plugins gefunden wurde.

Als letztes noch "Set as Targetplattform", wenn du etwas änderst ist der 
Schritt zu wiederholen.

Auf diese Weise entwickelst du gegen ein definiertes Target und musst 
nicht alle Bundles die du von extern beziehst noch selbst in deinem 
Eclipse Workspace vorhalten. Ansonsten entwickelst du nämlich gegen dein 
aktuelles Eclipse als Target und müsstest alle externen Libs in dein 
Eclipse installieren, was meist unvorteilhaft ist.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren