Ich versuche, eine osgi bündle, die eine Service-und Service-Klasse in zwei verschiedenen Paketen enthält zu schreiben. BündelService und impl in einem einzigen osgi-Bundle nicht starten
- packageA
- service class
- packageB
- service impl class
Da beide Service und Service-impl sind in demselben Bündel, während ich einen fehlenden Einschränkungsfehler am bereitstellen zu bekommen.
Hinweis: Wenn ich sowohl Service und Service impl sind in verschiedenen Bundle, es funktioniert gut. Auch wenn ich versuche, packageA aus packageB zu importieren, funktioniert es gut. Da beide im gleichen Bündel sind, warum sollte ich es explizit importieren. Was ist der Grund dafür?
Plugin-Konfiguration:
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>2.5.3</version>
<extensions>true</extensions>
<executions>
<execution>
<id>manifest</id>
<phase>process-classes</phase>
<configuration>
<unpackBundle>true</unpackBundle>
<manifestLocation>META-INF</manifestLocation>
<instructions>
<Bundle-SymbolicName>${bundle.symbolicName}</Bundle-SymbolicName>
<Bundle-Version>0.2.0-SNAPSHOT</Bundle-Version>
<Export-Package>!${bundle.namespace}.internal.*,${bundle.namespace}.*;version="0.2.0-SNAPSHOT"</Export-Package>
<Private-Package>${bundle.namespace}.internal.*</Private-Package>
<_include>-osgi.bnd</_include>
<_donotcopy>CVS|.svn|.git|.nfs*|~.nfs*|^.nfs*</_donotcopy>
<Commit-Id>${buildNumber}</Commit-Id>
</instructions>
</configuration>
</execution>
</executions>
<configuration>
<unpackBundle>true</unpackBundle>
<manifestLocation>META-INF</manifestLocation>
<instructions>
<Bundle-SymbolicName>${bundle.symbolicName}</Bundle-SymbolicName>
<Bundle-Version>0.2.0-SNAPSHOT</Bundle-Version>
<Export-Package>!${bundle.namespace}.internal.*,${bundle.namespace}.*;version="0.2.0-SNAPSHOT"</Export-Package>
<Private-Package>${bundle.namespace}.internal.*</Private-Package>
<_include>-osgi.bnd</_include>
<_donotcopy>CVS|.svn|.git|.nfs*|~.nfs*|^.nfs*</_donotcopy>
<Commit-Id>${buildNumber}</Commit-Id>
</instructions>
</configuration>
</plugin>
Hier wird die Versionsnummer wird zur Laufzeit generiert
Welchen Import sprichst du? Der Import in der Java-Klasse oder der Import im Manifest? –
Was war die Fehlermeldung? Ich meine, wir könnten * raten *, was schief läuft, wenn Sie möchten, aber das ist wahrscheinlich nicht hilfreich. –
@Chris -> Import ist in Manifest. – Shriram