据我所知,apache karaf的dev:watch命令应该可以帮助开发osgi捆绑包,这样我就不必每次手动更新捆绑包到该软件包的源代码...apache karaf dev:监视命令不起作用
我试过这个,只有一个简单的包只包含一个Activator类。 我正在使用maven进行开发。
osgi:install mvn:my.groupId/my.artifactId
然后我开始使用osgi:start <id of my bundle>
然后我开始监测此包using dev:watch --start <id of my bundle>
Karaf告诉我,捆绑:
import org.osgi.framework.BundleActivator;
import org.osgi.framework.BundleContext;
public class Activator implements BundleActivator {
public void start(BundleContext context) {
System.out.println("Starting the bundle");
}
public void stop(BundleContext context) {
System.out.println("Stopping the bundle");
}
}
我使用karaf命令安装的软件包它监视我的包。 好的。
然后,我想测试如果我更改了源代码并重新构建了我的包,那么包是否会自动更新。 因此,我更改了激活器类的System.out.println(),并使用mvn clean install
构建了我的重建包。
不应该捆绑更新自己呢?当我看看karaf控制台时,我发现没有任何更改,直到我使用osgi手动更新该软件包:更新(我想避免使用dev:watch)...我在这里做错了什么?
嗨,我如何能配置明确?目标文件夹中生成的Jar被称为bla.blubb.1.0-SNAPSHOT.jar,所以我猜这是一个快照版本?! – Moonlit 2012-07-15 07:30:51
是的,这听起来像一个快照版本,所以它应该工作。你使用mvn install吗?安装将jar部署到本地maven仓库中。这是必要的,因为karaf只监视本地回购站而不是目标文件夹。你还应该检查你是否使用maven repo的默认位置或者在karaf中配置你的特殊回购位置。 – 2012-07-15 21:18:20
是的,我正在使用mvn安装来构建包。 maven项目被放到C:/users/user/.m2/repository中,我也可以找到jar。之后,我使用“osgi:install”安装软件包,并指示karaf使用“dev:watch ”监视软件包。就这样。在我更改后的捆绑项目中再次调用mvn clean update之后,捆绑应该立即自动更新(就像我会调用osgi:update一样)是否正确?还是我缺少任何中间步骤? –
Moonlit
2012-07-15 23:08:25