OSGi maven-bundle-plugin 遗漏了我的包

OSGi maven-bundle-plugin leaving out my package

我在 Fuse 中有一个 CXF Web 服务应用程序,它在 camel 上下文 xml 文件中引用了一个包含我从 WSDL 生成的文件的 jar。

<cxf:cxfEndpoint id="LookupEndpoint"
                 address="${my.LookupUri}"
                 serviceClass="com.whatever.IWebService"
                 wsdlURL="wsdl/MyWsdl.wsdl"/>  

com.whatever.* 在我的 <Import-Package> 列表中。该 jar 在我的 maven 依赖项中。我可以说 import com.whatever.IWebService; 而它不会抱怨。

但是 maven-bundle-plugin 没有在 MANIFEST.MF

中包含这个包

它包括我要求的所有其他包裹。但不是这个。所以在 Fuse 中,当我部署它时,我得到 ClassNotFoundException,指的是 context.xml class loading.

非常令人沮丧。有没有办法强制插件导入某个包?因为他们的自动魔法依赖解决器忽略了我的 <Import-Package>

        <plugin>
            <groupId>org.apache.felix</groupId>
            <artifactId>maven-bundle-plugin</artifactId>
            <version>${version.maven-bundle-plugin}</version>
            <extensions>true</extensions>

            <configuration>
                <manifestLocation>src/main/resources/META-INF</manifestLocation>
                <instructions>
                    <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
                    <Bundle-Version>${project.version}</Bundle-Version>

                     <Import-Package> 
                     *, 
                     com.imports.this.one.fine*,
                     com.imports.this.one.just.fine*,
                     com.imports.does.not.import.this.one.*,
                    </Import-Package> 

                    <Export-Package>
                    com.something.export.*
                    </Export-Package>

                </instructions>
            </configuration>
        </plugin>

当您将 <Import-Package> 与通配符一起使用时,将为所有匹配通配符 的包生成一个 OSGi Import-Package header,您的包中的代码取决于在.

如果 maven-bundle-plugin 没有为您期望的包生成导入,这意味着您的包中的代码实际上并未引用该包。

与其导入这个包,不如将它包含在包中??为什么要导入它?