实际上,当我构建我的项目时,它会将捆绑包部署到正在运行的 OSGI 控制台。现在捆绑包处于已安装状态,并显示无法找到 commons-net 捆绑包的红色警报。
解决此问题的一种方法是将捆绑包显式安装到正在运行的 osgi 框架本身。
另一种方法可能是将嵌入依赖项添加到 maven。但这种方法行不通。我在 maven-build-plugin 的指令标签中添加了 Embeded-Dependency。它没有显示任何错误。
如果有任何建议,请告诉我。
实际上,当我构建我的项目时,它会将捆绑包部署到正在运行的 OSGI 控制台。现在捆绑包处于已安装状态,并显示无法找到 commons-net 捆绑包的红色警报。
解决此问题的一种方法是将捆绑包显式安装到正在运行的 osgi 框架本身。
另一种方法可能是将嵌入依赖项添加到 maven。但这种方法行不通。我在 maven-build-plugin 的指令标签中添加了 Embeded-Dependency。它没有显示任何错误。
如果有任何建议,请告诉我。
Embeded-Dependency 没有显示任何错误,因为您可以将任何内容放入说明中。如果不知道键值对,它将简单地插入到 MANIFEST.MF 中。尝试编写 Embed-Dependency,它应该可以工作。
一个很好的例子如下(我们如何为自己创建休眠包):
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<extensions>true</extensions>
<configuration>
<instructions>
<Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
<_exportcontents>
!org.hibernate.validator.*,
org.hibernate.*;-noimport:=true,
</_exportcontents>
<Import-Package>
javax.persistence*;version="1.1.0",
javax.naming*,
javax.sql,
javax.transaction*;version="1.1.0",
javax.xml.stream.*,
javax.xml.*,
org.slf4j,
org.w3c.dom,
org.xml.sax*,
antlr.*,
org.jboss.logging.*,
org.dom4j*,
*;resolution:=optional
</Import-Package>
<Embed-Dependency>
groupId=org.hibernate;artifactId=hibernate-core,
groupId=org.hibernate;artifactId=hibernate-entitymanager,
groupId=org.hibernate.common;artifactId=hibernate-commons-annotations
</Embed-Dependency>
</instructions>
</configuration>
</plugin>