gpt4 book ai didi

java - OSGi list 为空

转载 作者:行者123 更新时间:2023-12-02 03:25:48 26 4
gpt4 key购买 nike

我正在尝试创建一个服务,然后将其放入 felix OSGi 容器中。我尝试使用 maven-bundle-plugin 来做到这一点。安装 mvn clean install 软件包后,也在 target/classes/META-INF/MANIFEST.INF 中,我得到填充文件,但在 jar 中 list 如下所示:

Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Built-By: szymon.nowak
Created-By: Apache Maven 3.3.9
Build-Jdk: 1.8.0_77`

它应该是这样的:

Manifest-Version: 1.0
Bnd-LastModified: 1471013023955
Build-Jdk: 1.8.0_77
Built-By: szymon.nowak
Bundle-Activator: com.cognifide.activators.HelloWorldActivator
Bundle-ManifestVersion: 2
Bundle-Name: Hello World Bundle - service
Bundle-SymbolicName: OSGi Hello World Service
Bundle-Vendor: Szymon Nowak
Bundle-Version: 1.0.0.SNAPSHOT
Created-By: Apache Maven Bundle Plugin
Export-Package: com.cognifide.service.first;version="1.0.0"
Import-Package: com.cognifide.service.first,org.osgi.framework;version="
[1.5,2)"
Require-Capability: osgi.ee;filter:="(&(osgi.ee=JavaSE)(version=1.5))"
Tool: Bnd-3.2.0.201605172007

事实上,felix 注册了该文件,但它们不起作用,因为没有设置导出包或激活器。这就是我在 pom 中的插件定义的样子:

<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<extensions>true</extensions>
<executions>
<execution>
<id>bundle-manifest</id>
<phase>process-classes</phase>
<goals>
<goal>manifest</goal>
</goals>
</execution>
</executions>
<configuration>
<instructions>
<Bundle-SymbolicName>OSGi Hello World Service</Bundle-SymbolicName>
<Export-Package>com.cognifide.service.first</Export-Package>
<Bundle-Activator>com.cognifide.activators.HelloWorldActivator</Bundle-Activator>
<Bundle-Name>Hello World Bundle - service</Bundle-Name>
<Bundle-Vendor>Szymon Nowak</Bundle-Vendor>
</instructions>
</configuration>
</plugin>

编辑。

我使用mvn clean install构建我的项目。也许我应该使用该插件的某个阶段?

最佳答案

尝试删除执行部分。我认为您现在所拥有的告诉 maven-bundle-plugin 仅创建 list 而不打包它。

还要确保您拥有

<packaging>bundle</packaging>

关于java - OSGi list 为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38920913/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com