【发布时间】:2018-06-07 17:44:06
【问题描述】:
我正在开发简单的应用程序来演示 Apache Karaf 的使用。我在 eclipse 中开发了一个简单的基于 maven 的动态 Web 项目。现在我想在 apache karaf 中部署它。下面是代码-
import org.osgi.framework.BundleActivator;
import org.osgi.framework.BundleContext;
public class DemoActivator implements BundleActivator {
@Override
public void start(BundleContext bundleContext) throws Exception {
System.out.println("STARTING DEMO: hello, world");
}
@Override
public void stop(BundleContext bundleContext) throws Exception {
System.out.println("STOPPING DEMO");
}
}
POM.Xml 中的依赖项
<dependency>
<groupId>org.osgi</groupId>
<artifactId>osgi_R4_core</artifactId>
<version>1.0</version>
<scope>provided</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.osgi</groupId>
<artifactId>osgi_R4_compendium</artifactId>
<version>1.0</version>
<scope>provided</scope>
<optional>true</optional>
</dependency>
清单.MF
Bundle-SymbolicName: osgi-example
Bundle-Version: 1.0.0.SNAPSHOT
Import-Package:com.psl.demo;version="1.0.0.SNAPSHOT",org.osgi.framework
Export-Package: com.psl.demo;version="1.0.0.SNAPSHOT"
Bundle-Activator: com.psl.demo.DemoActivator
自定义 MANIFEST 文件的给定路径
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifestFile>src/main/resources/META-INF/MANIFEST.MF</manifestFile>
</archive>
</configuration>
</plugin>
</plugins>
</build>
现在每当我尝试使用 karaf 安装应用程序时-
install mvn:com.psl/osgi-demo-next/1.0.0-SNAPSHOT
我遇到了错误-
执行命令时出错:安装包时出错:无法安装 捆绑 mvn:com.psl.demo/osgi-example/1.0.0.SNAPSHOT: org.osgi.framework.BundleException:无法缓存捆绑包: mvn:com.psl.demo/osgi-example/1.0.0.SNAPSHOT
有什么解决办法吗? TIA
【问题讨论】:
-
似乎不在 maven 存储库中。您是否进行了 mavn 全新安装?
-
@AchimNierbeck -是的,我做到了。
-
你能给我们看完整的 pom 文件吗?
标签: apache-karaf karaf