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 没有为您期望的包生成导入,这意味着您的包中的代码实际上并未引用该包。
与其导入这个包,不如将它包含在包中??为什么要导入它?
我在 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 没有为您期望的包生成导入,这意味着您的包中的代码实际上并未引用该包。
与其导入这个包,不如将它包含在包中??为什么要导入它?